start to polish the ideas list
Roger Dingledine

Roger Dingledine commited on 2008-03-11 22:57:02
Zeige 1 geänderte Dateien mit 64 Einfügungen und 38 Löschungen.

... ...
@@ -91,6 +91,16 @@ Farsi translations, for the many Tor users in censored areas.</li>
91 91
 <a id="Summer"></a>
92 92
 <a id="Projects"></a>
93 93
 <h2><a class="anchor" href="#Projects">Good Coding Projects</a></h2>
94
+
95
+<p>
96
+You may find some of these projects to be good <a href="<page
97
+gsoc>">Google Summer of Code 2008</a> ideas. We have labelled each idea
98
+with how important it is to the overall Tor project to get this started
99
+(priority), how much work we expect it would be (effort level), how much
100
+clue you should start with (skill level), and which of our <a href="<page
101
+people>#Core">core developers</a> would be good mentors.
102
+</p>
103
+
94 104
 <ol>
95 105
 
96 106
 <li>
... ...
@@ -102,15 +112,18 @@ Effort Level: <i>High</i>
102 112
 <br />
103 113
 Skill Level: <i>High</i>
104 114
 <br />
105
-Likely Mentors: <i>Matt, others</i>
115
+Likely Mentors: <i>Matt, Jacob</i>
106 116
 <br />
107 117
 We're in need of a good updating framework. 
108 118
 Vidalia already has the ability to notice when the user is running an
109
-outdated or unrecommended version of Tor. Currently, Vidalia simply pops
119
+outdated or unrecommended version of Tor, using signed statements inside
120
+the Tor directory information. Currently, Vidalia simply pops
110 121
 up a little message box that lets the user know they should manually
111 122
 upgrade. The goal of this project would be to extend Vidalia with the
112 123
 ability to also fetch and install the updated Tor software for the
113
-user. Time permitting, we would also like to be able to update other
124
+user. We should do the fetches via Tor when possible, but also fall back
125
+to direct fetches in a smart way. Time permitting, we would also like
126
+to be able to update other
114 127
 applications included in the bundled installers, such as Polipo and
115 128
 Vidalia itself.
116 129
 <br />
... ...
@@ -133,7 +146,7 @@ with the student prior to implementation.
133 146
 </li>
134 147
 
135 148
 <li>
136
-<b>An Improved and More Usable Network Map</b>
149
+<b>An Improved and More Usable Network Map in Vidalia</b>
137 150
 <br />
138 151
 Priority: <i>Medium</i>
139 152
 <br />
... ...
@@ -141,7 +154,7 @@ Effort Level: <i>Medium</i>
141 154
 <br />
142 155
 Skill Level: <i>Medium to High</i>
143 156
 <br />
144
-Likely Mentors: <i>Matt, others</i>
157
+Likely Mentors: <i>Matt</i>
145 158
 <br />
146 159
 One of Vidalia's existing features is a network map that shows the user
147 160
 the approximate geographic location of relays in the Tor network and
... ...
@@ -152,8 +165,8 @@ that gives us a better quality map and enables improved interactivity,
152 165
 such as allowing the user to click on individual relays or circuits to
153 166
 display additional information. We might also consider adding the ability
154 167
 for users to click on a particular relay or a country containing one or
155
-more Tor exit relays and say, ``I want my connections to foo.com to exit
156
-from here.''
168
+more Tor exit relays and say, "I want my connections to foo.com to exit
169
+from here."
157 170
 <br />
158 171
 This project will first involve the student getting familiar with Vidalia
159 172
 and the Marble widget's API. The student will then integrate the widget
... ...
@@ -167,7 +180,7 @@ required.
167 180
 </li>
168 181
 
169 182
 <li>
170
-<b>Better Debian Packaging and Debian Packaging Support</b>
183
+<b>Better Debian Packaging for Tor+Vidalia</b>
171 184
 <br />
172 185
 Priority: <i>High</i>
173 186
 <br />
... ...
@@ -175,16 +188,17 @@ Effort Level: <i>Medium</i>
175 188
 <br />
176 189
 Skill Level: <i>Medium</i>
177 190
 <br />
178
-Likely Mentors: <i>Weasel, Matt, others</i>
191
+Likely Mentors: <i>Peter, Matt</i>
179 192
 <br />
180 193
 Vidalia currently doesn't play nicely on Debian and Ubuntu with the
181 194
 default Tor packages. The current Tor packages automatically start Tor
182 195
 as a daemon running as the debian-tor user and (sensibly) do not have a
183
-CntrolPort defined in the default torrc. Consequently, Vidalia will try
196
+<a href="<svnsandbox>doc/spec/control-spec.txt">ControlPort</a> defined
197
+in the default torrc. Consequently, Vidalia will try
184 198
 to start its own Tor process since it could not connect to the existing
185 199
 Tor, and then Vidalia's Tor process will then exit with an error message
186 200
 the user likely doesn't understand since Tor cannot bind its listening
187
-ports--they're already in use by the original Tor daemon.
201
+ports &mdash; they're already in use by the original Tor daemon.
188 202
 <br />
189 203
 The current solution involves either telling the user to stop the
190 204
 existing Tor daemon and let Vidalia start its own Tor process, or
... ...
@@ -192,8 +206,8 @@ explaining to the user how to set a control port and password in their
192 206
 torrc. A better solution on Debian would be to use Tor's ControlSocket,
193 207
 which allows Vidalia to talk to Tor via a Unix domain socket, and could
194 208
 possibly be enabled by default in Tor's Debian packages. Vidalia can
195
-then authenticate to Tor using cookie authentication if the user running
196
-Vidalia is also in the debian-tor group.
209
+then authenticate to Tor using filesystem-based (cookie) authentication
210
+if the user running Vidalia is also in the debian-tor group.
197 211
 <br />
198 212
 This project will first involve adding support for Tor's ControlSocket
199 213
 to Vidalia. The student will then develop and test Debian and Ubuntu
... ...
@@ -201,13 +215,23 @@ packages for Vidalia that conform to Debian's packaging standards and
201 215
 making sure it works well with the existing Tor packages. We can also
202 216
 set up an apt repository to host the new Vidalia packages.
203 217
 <br />
218
+The next challenge would be to find an intuitive usable way for Vidalia
219
+to be able to change Tor's configuration (torrc) even though it is
220
+located in <code>/etc/tor/torrc</code> and thus immutable. The best
221
+idea we've come up with so far is to feed Tor a new configuration via
222
+the ControlSocket when Vidalia starts, but that's bad because Tor starts
223
+with a different configuration than the user wants. The second best idea
224
+we've come up with is for Vidalia to write out a temporary torrc file
225
+and ask the user to manually move it to <code>/etc/tor/torrc</code>,
226
+but that's bad because users shouldn't have to mess with files directly.
227
+<br />
204 228
 A student undertaking this project should have prior knowledge of
205 229
 Debian package management and some C++ development experience. Previous
206 230
 experience with Qt is helpful, but not required.
207 231
 </li>
208 232
 
209 233
 <li>
210
-<b>Tor Status Event Interface</b>
234
+<b>Tor Controller Status Event Interface</b>
211 235
 <br />
212 236
 Priority: <i>Medium</i>
213 237
 <br />
... ...
@@ -215,13 +239,13 @@ Effort Level: <i>Medium</i>
215 239
 <br />
216 240
 Skill Level: <i>Medium</i>
217 241
 <br />
218
-Likely Mentors: <i>Matt, others</i>
242
+Likely Mentors: <i>Matt, Roger</i>
219 243
 <br />
220
-There are a number of status changes of which the user may need
244
+There are a number of status changes inside Tor of which the user may need
221 245
 to be informed. For example, if the user is trying to set up a Tor
222 246
 relay and Tor decides the user's relay is not reachable from outside
223 247
 the user's network, we should alert the user. Currently, all the user
224
-gets is a couple log messages in Vidalia's 'message log', which they
248
+gets is a couple log messages in Vidalia's 'message log' window, which they
225 249
 likely never see since they don't receive a notification that something
226 250
 has gone wrong. Even if the user does actually look at the message log,
227 251
 most of the messages make little sense to the novice user.
... ...
@@ -236,7 +260,7 @@ displaying Tor status events to the user. For example, we might put a
236 260
 little badge on Vidalia's tray icon that alerts the user to new status
237 261
 events they should look at. Double-clicking the icon could bring up a
238 262
 dialog that summarizes recent status events in simple terms and maybe
239
-suggests a remedy for any negative statuses if they can be corrected by
263
+suggests a remedy for any negative events if they can be corrected by
240 264
 the user. Of course, this is just an example and the student is free to
241 265
 suggest another approach.
242 266
 <br />
... ...
@@ -258,12 +282,12 @@ Effort Level: <i>Medium</i>
258 282
 <br />
259 283
 Skill Level: <i>Medium</i>
260 284
 <br />
261
-Likely Mentors: <i>Jacob, others</i>
285
+Likely Mentors: <i>Jacob</i>
262 286
 <br />
263
-We require a way to edit and translate sections of the website &mdash;
287
+We need a way to edit and translate sections of the website &mdash;
264 288
 possibly resulting in a patch for the official svn tree. The current
265 289
 "cost" of publication of website changes is quite high even for English
266
-language users. They need to check out our template files, translate them
290
+language users. They need to check out our template files, translate them,
267 291
 and send us the translation. For a single word change or any type of
268 292
 minor change, the page may never be corrected or translated.  It would
269 293
 be nice to have a wiki that was specifically geared towards translation
... ...
@@ -285,7 +309,7 @@ Effort Level: <i>Low</i>
285 309
 <br />
286 310
 Skill Level: <i>Low to Medium</i>
287 311
 <br />
288
-Likely Mentors: <i>Jacob, others</i>
312
+Likely Mentors: <i>Jacob</i>
289 313
 <br />
290 314
 We currently have a functional web page to detect if Tor is working. It
291 315
 is has a few places where it falls short. It requires improvements with
... ...
@@ -310,7 +334,7 @@ Effort Level: <i>Low</i>
310 334
 <br />
311 335
 Skill Level: <i>Low</i>
312 336
 <br />
313
-Likely Mentors: <i>Jacob, Tup, others</i>
337
+Likely Mentors: <i>Jacob, Tup</i>
314 338
 <br />
315 339
 The exitlist software is written by our fabulous anonymous
316 340
 contributer Tup. It's a DNS server written in Haskell that supports part of our <a
... ...
@@ -337,7 +361,7 @@ Effort Level: <i>Medium</i>
337 361
 <br />
338 362
 Skill Level: <i>Medium</i>
339 363
 <br />
340
-Likely Mentors: <i>Jacob, Mike, others</i>
364
+Likely Mentors: <i>Jacob, Mike</i>
341 365
 <br />
342 366
 The Tor project currently lacks a solid test to ensure that a
343 367
 user has a properly configured web browser. It should test for as
... ...
@@ -366,7 +390,7 @@ Effort Level: <i>High</i>
366 390
 <br />
367 391
 Skill Level: <i>Medium to High</i>
368 392
 <br />
369
-Likely Mentors: <i>Roger, others</i>
393
+Likely Mentors: <i>Roger</i>
370 394
 <br />
371 395
 Tor needs even better censorship resistance mechanisms.  There are
372 396
 several mechanisms that can help.  Tor should be able listen on multiple
... ...
@@ -384,7 +408,7 @@ Effort Level: <i>High</i>
384 408
 <br />
385 409
 Skill Level: <i>Medium to High</i>
386 410
 <br />
387
-Likely Mentors: <i>Nick, others</i>
411
+Likely Mentors: <i>Nick</i>
388 412
 <br />
389 413
 Tor should make better use of the more recent features of Niels Provos's
390 414
 Libevent library.  Libevent already provides HTTP and socket buffers;
... ...
@@ -402,7 +426,7 @@ Effort Level: <i>Medium</i>
402 426
 <br />
403 427
 Skill Level: <i>Medium to High</i>
404 428
 <br />
405
-Likely Mentors: <i>Roger, others</i>
429
+Likely Mentors: <i>Roger</i>
406 430
 <br />
407 431
 Tor should possibly measure bandwidth in a distributed way, as in the
408 432
 <a href="http://freehaven.net/anonbib/">"A Tuneup for Tor"</a> paper
... ...
@@ -422,7 +446,7 @@ Effort Level: <i>Medium</i>
422 446
 <br />
423 447
 Skill Level: <i>Medium</i>
424 448
 <br />
425
-Likely Mentors: <i>Jacob, Phobos, others</i>
449
+Likely Mentors: <i>Jacob, Andrew</i>
426 450
 <br />
427 451
 It would be useful to have automated build processes for Windows and
428 452
 probably other platforms. The purpose of having a continuous integration
... ...
@@ -458,7 +482,7 @@ Effort Level: <i>Medium</i>
458 482
 <br />
459 483
 Skill Level: <i>Medium</i>
460 484
 <br />
461
-Likely Mentors: <i>Nick, others</i>
485
+Likely Mentors: <i>Nick</i>
462 486
 <br />
463 487
 Tor needs to be far more tested.  This is a multi-part effort.  To start
464 488
 with, our unit test coverage should rise substantially, especially in
... ...
@@ -477,13 +501,13 @@ changes in performance on machines in different roles automatically.<br />
477 501
 <li>
478 502
 <b>Help revive the Java community around Tor</b>
479 503
 <br />
480
-Priority: <i>High</i>
504
+Priority: <i>Medium</i>
481 505
 <br />
482 506
 Effort Level: <i>High</i>
483 507
 <br />
484 508
 Skill Level: <i>Medium to High</i>
485 509
 <br />
486
-Likely Mentors: <i>Karsten, others</i>
510
+Likely Mentors: <i>Karsten</i>
487 511
 <br />
488 512
 Reanimate one of the approaches to implement a Tor client in Java,
489 513
 e.g. the <a href="http://onioncoffee.sourceforge.net/">OnionCoffee
... ...
@@ -497,8 +521,8 @@ providing Tor hidden services would be neat, but not required. The
497 521
 student should be able to understand and write new Java code, including
498 522
 a Java cryptography API. Being able to read C code would be helpful,
499 523
 too. The student should be willing to read the existing documentation,
500
-implement code based on it, and, if required, refine the documentation
501
-if things are underdocumented. This project is mostly about coding and
524
+implement code based on it, and refine the documentation
525
+when things are underdocumented. This project is mostly about coding and
502 526
 to a small degree about design.
503 527
 </li>
504 528
 
... ...
@@ -511,7 +535,7 @@ Effort Level: <i>Medium</i>
511 535
 <br />
512 536
 Skill Level: <i>Medium</i>
513 537
 <br />
514
-Likely Mentors: <i>Roger, others</i>
538
+Likely Mentors: <i>Karsten, Roger</i>
515 539
 <br />
516 540
 Write a tool that runs automatic system tests in addition
517 541
 to the existing unit tests. The Java-based Tor simulator <a
... ...
@@ -539,7 +563,7 @@ Effort Level: <i>Medium</i>
539 563
 <br />
540 564
 Skill Level: <i>Low to Medium</i>
541 565
 <br />
542
-Likely Mentors: <i>Karsten, Jacob, others</i>
566
+Likely Mentors: <i>Karsten, Jacob</i>
543 567
 <br />
544 568
 Implement a <a href="http://www.ss64.com/bash/top.html">top-like</a>
545 569
 management tool for Tor relays. The purpose of such a tool would be
... ...
@@ -705,7 +729,7 @@ Effort Level: <i>High</i>
705 729
 <br />
706 730
 Skill Level: <i>Medium to High</i>
707 731
 <br />
708
-Likely Mentors: <i>Roger, others</i>
732
+Likely Mentors: <i>Steven, Roger</i>
709 733
 <br />
710 734
 Help port <a
711 735
 href="http://www.pps.jussieu.fr/~jch/software/polipo/">Polipo</a> to
... ...
@@ -731,7 +755,7 @@ Effort Level: <i>Low</i>
731 755
 <br />
732 756
 Skill Level: <i>Low</i>
733 757
 <br />
734
-Likely Mentors: <i>Roger, others</i>
758
+Likely Mentors: <i>Andrew</i>
735 759
 <br />
736 760
 a way to generate the website diagrams from source, so we can translate
737 761
 them as utf-8 text rather than with gimp. (svg? or imagemagick?)
... ...
@@ -748,7 +772,7 @@ Effort Level: <i>Low</i>
748 772
 <br />
749 773
 Skill Level: <i>Medium to High</i>
750 774
 <br />
751
-Likely Mentors: <i>Roger, others</i>
775
+Likely Mentors: <i>Anonym, Jacob, Roger</i>
752 776
 <br />
753 777
 How can we make the <a
754 778
 href="http://anonymityanywhere.com/incognito/">Incognito LiveCD</a>
... ...
@@ -906,8 +930,10 @@ puzzles the right answer? What other practical approaches are there? Bonus
906 930
 if they're backward-compatible with the current Tor protocol.</li>
907 931
 </ol>
908 932
 
933
+<p>
909 934
 <a href="<page contact>">Let us know</a> if you've made progress on any
910 935
 of these!
936
+</p>
911 937
 
912 938
   </div><!-- #main -->
913 939
 
914 940