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

Hello everyone!

The following is my first draft of the proposal for the
anon-connection-wizard. Could anyone offer me some feedback about it
please? Any recommendation, suggestion and criticism are very welcome
and appreciated!

> # Introduction
> 
> Every software project should solve a problem. Before offering the 
> solution (your Google Summer of Code project), you should first 
> define the problem. What’s the current state of things? What’s the 
> issue you wish to solve and why? Then you should conclude with a 
> sentence or two about your solution.
Include links to discussions, features, or bugs that describe the
problem further if necessary.
> 
The anon-connection-wizard is a Python-clone of the Tor Launcher which
aims at providing Tor users with a graphical instruction on
configuring the Tor. 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.

The current implementation of the Tor Launcher heavily relies on the
Tor Browser, making using Tor Launcher without having the Tor Browser
impossible. Besides, the current instructions provided by the
anon-connection-wizard and Tor launcher is not be clear enough for
user 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.
> # Project goals
> 
> Be short and to the point, and perhaps format it as a list.
> Propose a clear list of deliverables, explaining exactly what you
> promise to do and what you do not plan to do.

“Future developments” can be mentioned, but your promise for the
Google Summer of Code term is what counts.
As mentioned above, the projects goals include two main parts:
1. The clone implementation of Tor Launcher;
2. The redesign of the anon-connection-wizard.
> 
> # Implementation
> 
> Be detailed. Describe what you plan to do as a solution for the 
> problem you defined above. Include technical details, showing that 
> you understand the technology. Illustrate key technical elements
> of your proposed solution in reasonable detail.
> 
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" is preferred way to implement this:
https://forums.whonix.org/t/graphical-gui-whonix-setup-wizard-anon-conne
ction-wizard-technical-discussion/650/226

2. The password for proxy setting should be covered by character *

The redesign of the anon-connection-wizard:
I have made a specific proposal for this topic, which can be found
here:
https://forums.whonix.org/t/a-proposal-for-redesigning-anon-connection-w
izard-for-better-usability/3681
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.
> # Timeline
> 
> Show that you understand the problem, have a solution, have also 
> broken it down into manageable parts, and that you have a
> realistic plan on how to accomplish your goal.

Here you set expectations, so don’t make promises you can’t keep. A
modest, realistic and detailed timeline is better than promising the
impossible.

Since the specific dates may be changed with the undecided working
schedule. I arrange my timeline in a week unit.

Week 1:
The password for proxy setting should be covered by character *.

Week 2:
Implement the "edit marker approach".

Week 3:
Rewriting 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:
Rearranging 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:
Adding more features to the custom Tor bridges configuration input box
for more clear instruction. For example, syntax highlight, tool-tips, et
c;

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:
Modifying the anon-connection-wizard based on the result of the
experiment.

Week 12:
Modifying the anon-connection-wizard based on the result of the
experiment.

> 
> If you have other commitments during GSoC, such as a job,
> vacation, exams, internship, seminars, or papers to write, disclose
> them here.
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).

GSoC should be treated like a full-time job, and we will expect
approximately 40 hours of work per week. If you have conflicts,
explain how you will work around them. If you are found to have
conflicts which you did not disclose, you may be failed.
> 
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:
1. Since I have been familiar with the contributing workflow for
Qubes/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.

> Open and clear communication is of utmost importance. Include your 
> plans for communication in your proposal; daily if possible. You 
> will need to initiate weekly formal communications such as a 
> detailed email to the qubes-devel mailing list. Lack of 
> communication will result in you being failed.
> 
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.

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. I can
definitely send the posts to the qubes-devek maiking list if it is
considered as a good idea.

> # About me
> 
> Provide your contact information
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.

> and write a few sentences about you and why you think you are the 
> best for this job.
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 Qubes/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 Qubes/Whonix as a career is not only a
dream that I have been fighting for, but also an essential approach to
my self-actualization.

> Prior contributions to Qubes are helpful; list your commits.

The followings are my pull requests on GitHub to the Qubes/Whonix:
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. [A proposal for redesigning anon-connection-wizard for better
usability](https://github.com/Whonix/anon-connection-wizard/pull/3)
4. [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:
1.
https://forums.whonix.org/t/a-proposal-for-redesigning-anon-connection-w
izard-for-better-usability/3681

> Name people (other developers, students, professors) who can act
> as a reference for you. Mention your field of study if necessary.

(My potential mentor, Patrick may be a reference for me)

> Tell us if you are submitting proposals to other organizations,
> and whether or not you would choose Qubes if given the choice.

I am not submitting proposals to other organizations. I will be
extremely happy if I can get the offer from Qubes.

> Other things to think about: * Are you comfortable working 
> independently under a supervisor or mentor who is several thousand 
> miles away, and perhaps 12 time zones away? How will you work with 
> your mentor to track your work? Have you worked in this style 
> before?
Yes! I have been interacting, working and learning in this style with
my potential mentor and I am really comfortable with that.
> * If your native language is not English, are you comfortable 
> working closely with a supervisor whose native language is
> English? What is your native language, as that may help us find a
> mentor who has the same native language?
Both my potential mentor Patrick and I can communicate in English. So
there is no problem with that.

-----BEGIN PGP SIGNATURE-----

iQIcBAEBCgAGBQJYz1PJAAoJEKFLTbxtzdU8HWEQAI+TJqcu0uh73SZW5zw8gNm1
gLdGsm+RgvUjYhREJ+7OmAEz1Xf0DU+jMtRnJBW4TzQuPahiOgvIr+lie7u3jVi+
zHc9Vr0M6Qdyj3RBFv1nxSpeffdBNantrwWalVfSwQQTzdBEiqYIDm7/M/H/u6XH
iRvNy5o8jlCiJFeeZAgGkq6JcnlRjRpZCgzpYT5h3ototi8ALz2G3uXwvPFN4UdO
ce9pdVzFFAGwP41zj2V90sBL8vT0KjYllCFlYxdfWjRd4sxicSCrrJRCN0RLkVAB
yov6ZcXvRp3g00qX0HpEfguyKBvc3+cmt7EI6RWrif4qoWWtNEthd4W34XVa1aWQ
+H84iZG6ySaXwPkQt1CrvUOEN0HsYjPnkVVU09lA5TEiebpsXuI9ciDk06gQZM2o
qP+gDNtj5NzrgjH8xOSfXi7y8LXrKUMWthvs19hrqwaBbkuk7GN/RN/MJpErdSRZ
y9XXwpLvzyyL+HGVSREUCI6VJGjjIJiZZ5R0aFajXsc7qxsSVjo1qD51XfbLBEa7
NRz6yih0Anv+E+GGGiTOQ0BuSx2OGrmWJs8nEvbXnXvBeRc87iZdTL6TpAL86Q3h
zBb831PDyIUV/3WTd1ZEXTO+TJ85HNbEmIF84xebm0GbbYqoc9IkhsSYxL1dp18l
IDsSrN6hYQ8+vXOi0XMC
=hrMn
-----END PGP SIGNATURE-----

-- 
You received this message because you are subscribed to the Google Groups 
"qubes-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/qubes-devel/oank45%249eg%241%40blaine.gmane.org.
For more options, visit https://groups.google.com/d/optout.

Attachment: 0x6DCDD53C.asc
Description: application/pgp-keys

Attachment: 0x6DCDD53C.asc.sig
Description: PGP signature

Reply via email to