Order ideas by priority.
Karsten Loesing

Karsten Loesing commited on 2009-03-12 22:25:48
Zeige 1 geänderte Dateien mit 515 Einfügungen und 515 Löschungen.

... ...
@@ -113,34 +113,59 @@ idea which often results in the best applications.
113 113
 
114 114
 <ol>
115 115
 
116
-<!-- Mike is already working on this.
117 116
 <li>
118
-<b>Tor Node Scanner improvements</b>
117
+<b>Tor Browser Bundle for Linux/Mac OS X</b>
119 118
 <br />
120
-Similar to the SoaT exit scanner (or perhaps even during exit scanning),
121
-statistics can be gathered about the reliability of nodes. Nodes that
122
-fail too high a percentage of their circuits should not be given
123
-Guard status. Perhaps they should have their reported bandwidth
124
-penalized by some ratio as well, or just get marked as Invalid. In
125
-addition, nodes that exhibit a very low average stream capacity but
126
-advertise a very high node bandwidth can also be marked as Invalid.
127
-Much of this statistics gathering is already done, it just needs to be
128
-transformed into something that can be reported to the Directory
129
-Authorities to blacklist/penalize nodes in such a way that clients
130
-will listen.
119
+Priority: <i>High</i>
131 120
 <br />
132
-In addition, these same statistics can be gathered about the traffic
133
-through a node. Events can be added to the <a
134
-href="https://svn.torproject.org/svn/torctl/trunk/doc/howto.txt">Tor Control
135
-Protocol</a> to
136
-report if a circuit extend attempt through the node succeeds or fails, and
137
-passive statistics can be gathered on both bandwidth and reliability
138
-of other nodes via a node-based monitor using these events. Such a
139
-scanner would also report information on oddly-behaving nodes to
140
-the Directory Authorities, but a communication channel for this
141
-currently does not exist and would need to be developed as well.
121
+Effort Level: <i>High</i>
122
+<br />
123
+Skill Level: <i>Medium</i>
124
+<br />
125
+Likely Mentors: <i>Steven, Andrew</i>
126
+<br />
127
+The Tor Browser bundle incorporates Tor, Firefox, and the Vidalia user
128
+interface (and optionally Pidgin IM). Components are pre-configured to
129
+operate in a secure way, and it has very few dependencies on the
130
+installed operating system. It has therefore become one of the most
131
+easy to use, and popular, ways to use Tor on Windows.
132
+<br />
133
+However, there is currently no comparable package for Linux and Mac OS
134
+X, so this project would be to implement Tor Browser Bundle for these
135
+platforms. This will involve modifications to Vidalia (C++), possibly
136
+Firefox (C) then creating and testing the launcher on a range of
137
+operating system versions and configurations to verify portability.
138
+<br />
139
+Students should be familiar with application development on one or
140
+preferably both of Linux and Mac OS X, and be comfortable with C/C++
141
+and shell scripting.
142
+<br />
143
+Part of this project could be usability testing of Tor Browser Bundle,
144
+ideally amongst our target demographic.
145
+That would help a lot in knowing what needs to be done in terms of bug
146
+fixes or new features. We get this informally at the moment, but a more
147
+structured process would be better.
148
+</li>
149
+
150
+<li>
151
+<b>Translation wiki for our website</b>
152
+<br />
153
+Priority: <i>High</i>
154
+<br />
155
+Effort Level: <i>Medium</i>
156
+<br />
157
+Skill Level: <i>Medium</i>
158
+<br />
159
+Likely Mentors: <i>Jacob</i>
160
+<br />
161
+The Tor Project has been working over the past year to set up web-based
162
+tools to help volunteers translate our applications into other languages.
163
+We finally hit upon Pootle, and we have a fine web-based translation engine
164
+in place for Vidalia, Torbutton, and Torcheck. However, Pootle only
165
+translates strings that are in the "po" format, and our website uses wml
166
+files. This project is about finding a way to convert our wml files into po
167
+strings and back, so they can be handled by Pootle.
142 168
 </li>
143
--->
144 169
 
145 170
 <li>
146 171
 <b>Help track the overall Tor Network status</b>
... ...
@@ -172,52 +197,6 @@ kept separate. Speaking of the Tor Status pages, take a look at Roger's
172 197
 Status wish list</a>.
173 198
 </li>
174 199
 
175
-<!-- Is this still a useful project? If so, move it to another section.
176
-<li>
177
-<b>Better Debian/Ubuntu Packaging for Tor+Vidalia</b>
178
-<br />
179
-Vidalia currently doesn't play nicely on Debian and Ubuntu with the
180
-default Tor packages. The current Tor packages automatically start Tor
181
-as a daemon running as the debian-tor user and (sensibly) do not have a
182
-<a href="<svnsandbox>doc/spec/control-spec.txt">ControlPort</a> defined
183
-in the default torrc. Consequently, Vidalia will try
184
-to start its own Tor process since it could not connect to the existing
185
-Tor, and Vidalia's Tor process will then exit with an error message
186
-the user likely doesn't understand since Tor cannot bind its listening
187
-ports &mdash; they're already in use by the original Tor daemon.
188
-<br />
189
-The current solution involves either telling the user to stop the
190
-existing Tor daemon and let Vidalia start its own Tor process, or
191
-explaining to the user how to set a control port and password in their
192
-torrc. A better solution on Debian would be to use Tor's ControlSocket,
193
-which allows Vidalia to talk to Tor via a Unix domain socket, and could
194
-possibly be enabled by default in Tor's Debian packages. Vidalia can
195
-then authenticate to Tor using filesystem-based (cookie) authentication
196
-if the user running Vidalia is also in the debian-tor group.
197
-<br />
198
-This project will first involve adding support for Tor's ControlSocket
199
-to Vidalia. The student will then develop and test Debian and Ubuntu
200
-packages for Vidalia that conform to Debian's packaging standards and
201
-make sure they work well with the existing Tor packages. We can also
202
-set up an apt repository to host the new Vidalia packages.
203
-<br />
204
-The next challenge would be to find an intuitive usable way for Vidalia
205
-to be able to change Tor's configuration (torrc) even though it is
206
-located in <code>/etc/tor/torrc</code> and thus immutable. The best
207
-idea we've come up with so far is to feed Tor a new configuration via
208
-the ControlSocket when Vidalia starts, but that's bad because Tor starts
209
-each boot with a different configuration than the user wants. The second
210
-best idea
211
-we've come up with is for Vidalia to write out a temporary torrc file
212
-and ask the user to manually move it to <code>/etc/tor/torrc</code>,
213
-but that's bad because users shouldn't have to mess with files directly.
214
-<br />
215
-A person undertaking this project should have prior knowledge of
216
-Debian package management and some C++ development experience. Previous
217
-experience with Qt is helpful, but not required.
218
-</li>
219
--->
220
-
221 200
 <li>
222 201
 <b>Improving Tor's ability to resist censorship</b>
223 202
 <br />
... ...
@@ -253,74 +232,83 @@ resist an adversary even after the adversary knows the design, and
253 232
 then trading off censorship resistance with usability and robustness.
254 233
 </li>
255 234
 
256
-<!-- This should be mostly done.
257 235
 <li>
258
-<b>Tor/Polipo/Vidalia Auto-Update Framework</b>
236
+<b>Tuneup Tor!</b>
259 237
 <br />
260
-We're in need of a good authenticated-update framework.
261
-Vidalia already has the ability to notice when the user is running an
262
-outdated or unrecommended version of Tor, using signed statements inside
263
-the Tor directory information. Currently, Vidalia simply pops
264
-up a little message box that lets the user know they should manually
265
-upgrade. The goal of this project would be to extend Vidalia with the
266
-ability to also fetch and install the updated Tor software for the
267
-user. We should do the fetches via Tor when possible, but also fall back
268
-to direct fetches in a smart way. Time permitting, we would also like
269
-to be able to update other
270
-applications included in the bundled installers, such as Polipo and
271
-Vidalia itself.
238
+Priority: <i>Medium to High</i>
272 239
 <br />
273
-To complete this project, the student will first need to first investigate
274
-the existing auto-update frameworks (e.g., Sparkle on OS X) to evaluate
275
-their strengths, weaknesses, security properties, and ability to be
276
-integrated into Vidalia. If none are found to be suitable, the student
277
-will design their own auto-update framework, document the design, and
278
-then discuss the design with other developers to assess any security
279
-issues. The student will then implement their framework (or integrate
280
-an existing one) and test it.
240
+Effort Level: <i>Medium to High</i>
281 241
 <br />
282
-A person undertaking this project should have good C++ development
283
-experience. Previous experience with Qt is helpful, but not required. One
284
-should also have a good understanding of common security
285
-practices, such as package signature verification. Good writing ability
286
-is also important for this project, since a vital step of the project
287
-will be producing a design document to review and discuss
288
-with others prior to implementation.
242
+Skill Level: <i>High</i>
243
+<br />
244
+Likely Mentors: <i>Nick, Roger, Mike, Karsten</i>
245
+<br />
246
+Right now, Tor relays measure and report their own bandwidth, and Tor
247
+clients choose which relays to use in part based on that bandwidth.
248
+This approach is vulnerable to
249
+<a href="http://freehaven.net/anonbib/#bauer:wpes2007">attacks where
250
+relays lie about their bandwidth</a>;
251
+to address this, Tor currently caps the maximum bandwidth
252
+it's willing to believe any relay provides.  This is a limited fix, and
253
+a waste of bandwidth capacity to boot.  Instead,
254
+Tor should possibly measure bandwidth in a more distributed way, perhaps
255
+as described in the
256
+<a href="http://freehaven.net/anonbib/author.html#snader08">"A Tune-up for
257
+Tor"</a> paper
258
+by Snader and Borisov. One could use current testing code to
259
+double-check this paper's findings and verify the extent to which they
260
+dovetail with Tor as deployed in the wild, and determine good ways to
261
+incorporate them into their suggestions Tor network without adding too
262
+much communications overhead between relays and directory
263
+authorities.
289 264
 </li>
290
--->
291 265
 
292 266
 <li>
293
-<b>An Improved and More Usable Network Map in Vidalia</b>
267
+<b>Improving Polipo on Windows</b>
294 268
 <br />
295
-Priority: <i>Low to Medium</i>
269
+Priority: <i>Medium to High</i>
296 270
 <br />
297 271
 Effort Level: <i>Medium</i>
298 272
 <br />
299 273
 Skill Level: <i>Medium</i>
300 274
 <br />
301
-Likely Mentors: <i>Matt</i>
275
+Likely Mentors: <i>Martin</i>
302 276
 <br />
303
-One of Vidalia's existing features is a network map that shows the user
304
-the approximate geographic location of relays in the Tor network and
305
-plots the paths the user's traffic takes as it is tunneled through the
306
-Tor network. The map is currently not very interactive and has rather
307
-poor graphics. Instead, we implemented KDE's Marble widget such
308
-that it gives us a better quality map and enables improved interactivity,
309
-such as allowing the user to click on individual relays or circuits to
310
-display additional information. We want to add the ability
311
-for users to click on a particular relay or a country containing one or
312
-more Tor exit relays and say, "I want my connections to exit
313
-from here."
277
+Help port <a
278
+href="http://www.pps.jussieu.fr/~jch/software/polipo/">Polipo</a> to
279
+Windows. Example topics to tackle include:
280
+1) the ability to asynchronously
281
+query name servers, find the system nameservers, and manage netbios
282
+and dns queries.
283
+2) manage events and buffers
284
+natively (i.e. in Unix-like OSes, Polipo defaults to 25% of ram, in
285
+Windows it's whatever the config specifies). 3) some sort of GUI config
286
+and reporting tool, bonus if it has a systray icon with right clickable
287
+menu options. Double bonus if it's cross-platform compatible.
288
+4) allow the software to use the Windows Registry and handle proper Windows directory locations, such as "C:\Program Files\Polipo"
289
+</li>
290
+
291
+<li>
292
+<b>Implement a torrent-based scheme for downloading Thandy packages</b>
314 293
 <br />
315
-This project will first involve getting familiar with Vidalia
316
-and the Marble widget's API. One will then integrate the widget
317
-into Vidalia and customize Marble to be better suited for our application,
318
-such as making circuits clickable, storing cached map data in Vidalia's
319
-own data directory, and customizing some of the widget's dialogs.
294
+Priority: <i>Medium to High</i>
320 295
 <br />
321
-A person undertaking this project should have good C++ development
322
-experience. Previous experience with Qt and CMake is helpful, but not
323
-required.
296
+Effort Level: <i>High</i>
297
+<br />
298
+Skill Level: <i>Medium to High</i>
299
+<br />
300
+Likely Mentors: <i>Martin, Nick</i>
301
+<br />
302
+<a
303
+href="http://git.torproject.org/checkout/thandy/master/specs/thandy-spec.txt">Thandy</a>
304
+is a relatively new software to allow assisted updates of Tor and related
305
+software. Currently, there are very few users, but we expect Thandy to be
306
+used by almost every Tor user in the future. To avoid crashing servers on
307
+the day of a Tor update, we need new ways to distribute new packages
308
+efficiently, and using libtorrent seems to be a possible solution. If you
309
+think of other good ideas, great - please do let us know!<br />
310
+We also need to investigate how to include our mirrors better. If possible,
311
+there should be an easy way for them to help distributing the packages.
324 312
 </li>
325 313
 
326 314
 <li>
... ...
@@ -366,31 +354,399 @@ be understandable by non-technical users. Bonus points for some graphic
366 354
 design/Photoshop fu, since we might want/need some shiny new icons too.
367 355
 </li>
368 356
 
369
-<!-- Jake already did most of this.
370 357
 <li>
371
-<b>Improvements on our active browser configuration tester</b> -
372
-<a href="https://check.torproject.org/">https://check.torproject.org/</a>
358
+<b>Improve our unit testing process</b>
373 359
 <br />
374
-We currently have a functional web page to detect if Tor is working. It
375
-has a few places where it falls short. It requires improvements with
376
-regard to default languages and functionality. It currently only responds
377
-in English. In addition, it is a hack of a perl script that should have
378
-never seen the light of day. It should probably be rewritten in python
379
-with multi-lingual support in mind. It currently uses the <a
380
-href="http://exitlist.torproject.org/">Tor DNS exit list</a>
381
-and should continue to do so in the future. It currently result in certain
382
-false positives and these should be discovered, documented, and fixed
383
-where possible. Anyone working on this project should be interested in
384
-DNS, basic perl or preferably python programming skills, and will have
385
-to interact minimally with Tor to test their code.
360
+Priority: <i>Medium</i>
386 361
 <br />
387
-If you want to make the project more exciting
388
-and involve more design and coding, take a look at <a
389
-href="<svnsandbox>doc/spec/proposals/131-verify-tor-usage.txt">proposal
390
-131-verify-tor-usage.txt</a>.
391
-</li>
392
--->
393
-
362
+Effort Level: <i>Medium</i>
363
+<br />
364
+Skill Level: <i>Medium</i>
365
+<br />
366
+Likely Mentors: <i>Nick, Roger</i>
367
+<br />
368
+Tor needs to be far more tested. This is a multi-part effort. To start
369
+with, our unit test coverage should rise substantially, especially in
370
+the areas outside the utility functions. This will require significant
371
+refactoring of some parts of Tor, in order to dissociate as much logic
372
+as possible from globals.
373
+<br />
374
+Additionally, we need to automate our performance testing. We've got
375
+buildbot to automate our regular integration and compile testing already
376
+(though we need somebody to set it up on Windows),
377
+but we need to get our network simulation tests (as built in <a
378
+href="https://svn.torproject.org/svn/torflow/trunk/README">TorFlow</a>)
379
+updated for more recent versions of Tor, and designed to launch a test
380
+network either on a single machine, or across several, so we can test
381
+changes in performance on machines in different roles automatically.
382
+</li>
383
+
384
+<li>
385
+<b>Help revive an independent Tor client implementation</b>
386
+<br />
387
+Priority: <i>Medium</i>
388
+<br />
389
+Effort Level: <i>High</i>
390
+<br />
391
+Skill Level: <i>Medium to High</i>
392
+<br />
393
+Likely Mentors: <i>Karsten, Nick</i>
394
+<br />
395
+Reanimate one of the approaches to implement a Tor client in Java,
396
+e.g. the <a href="http://onioncoffee.sourceforge.net/">OnionCoffee
397
+project</a>, and make it run on <a
398
+href="http://code.google.com/android/">Android</a>. The first step
399
+would be to port the existing code and execute it in an Android
400
+environment. Next, the code should be updated to support the newer Tor
401
+protocol versions like the <a href="<svnsandbox>doc/spec/dir-spec.txt">v3
402
+directory protocol</a>. Further, support for requesting or even
403
+providing Tor hidden services would be neat, but not required.
404
+<br />
405
+A prospective developer should be able to understand and write new Java
406
+code, including
407
+a Java cryptography API. Being able to read C code would be helpful,
408
+too. One should be willing to read the existing documentation,
409
+implement code based on it, and refine the documentation
410
+when things are underdocumented. This project is mostly about coding and
411
+to a small degree about design.
412
+</li>
413
+
414
+<li>
415
+<b>New Torbutton Features</b>
416
+<br />
417
+Priority: <i>Medium</i>
418
+<br />
419
+Effort Level: <i>High</i>
420
+<br />
421
+Skill Level: <i>High</i>
422
+<br />
423
+Likely Mentors: <i>Mike</i>
424
+<br/>
425
+There are several <a
426
+href="https://bugs.torproject.org/flyspray/index.php?tasks=all&amp;project=5&amp;type=2">good
427
+feature requests</a> on the Torbutton Flyspray section. In particular, <a
428
+href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=523">Integrating
429
+'New Identity' with Vidalia</a>,
430
+<a href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=940">ways of
431
+managing multiple cookie jars/identities</a>, <a
432
+href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=637">preserving
433
+specific cookies</a> when cookies are cleared,
434
+<a
435
+href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=524">better
436
+referrer spoofing</a>, <a
437
+href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=564">correct
438
+Tor status reporting</a>, and <a
439
+href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=462">"tor://"
440
+and "tors://" urls</a> are all interesting
441
+features that could be added.
442
+<br />
443
+This work would be independent coding in Javascript and the fun world of <a
444
+href="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">XUL</a>,
445
+with not too much involvement in the Tor internals.
446
+</li>
447
+
448
+<li>
449
+<b>New Thandy Features</b>
450
+<br />
451
+Priority: <i>Medium</i>
452
+<br />
453
+Effort Level: <i>Medium</i>
454
+<br />
455
+Skill Level: <i>Medium to High</i>
456
+<br />
457
+Likely Mentors: <i>Martin</i>
458
+<br />
459
+Additional capabilities are needed for assisted updates of all the Tor
460
+related software for Windows and other operating systems. Some of the
461
+features to consider include:
462
+1) Integration of the <a
463
+href="http://chandlerproject.org/Projects/MeTooCrypto">MeTooCrypto
464
+Python library</a>
465
+for authenticated HTTPS downloads. 2) Adding a level of indirection
466
+between the timestamp signatures and the package files included in an
467
+update. See the "Thandy attacks / suggestions" thread on or-dev.
468
+3) Support locale specific installation and configuration of assisted
469
+updates based on preference, host, or user account language settings.
470
+Familiarity with Windows codepages, unicode, and other character sets
471
+is helpful in addition to general win32 and posix API experience and
472
+Python proficiency.
473
+</li>
474
+
475
+<li>
476
+<b>Simulator for slow Internet connections</b>
477
+<br />
478
+Priority: <i>Medium</i>
479
+<br />
480
+Effort Level: <i>Medium</i>
481
+<br />
482
+Skill Level: <i>Medium</i>
483
+<br />
484
+Likely Mentors: <i>Steven</i>
485
+<br />
486
+Many users of Tor have poor-quality Internet connections, giving low
487
+bandwidth, high latency, and high packet loss/re-ordering. User
488
+experience is that Tor reacts badly to these conditions, but it is
489
+difficult to improve the situation without being able to repeat the
490
+problems in the lab.
491
+<br />
492
+This project would be to build a simulation environment which
493
+replicates the poor connectivity so that the effect on Tor performance
494
+can be measured. Other components would be a testing utility to
495
+establish what are the properties of connections available, and to
496
+measure the effect of performance-improving modifications to Tor.
497
+<br />
498
+The tools used would be up to the student, but dummynet (for FreeBSD)
499
+and nistnet (for Linux) are two potential components on which this
500
+project could be built. Students should be experienced with network
501
+programming/debugging and TCP/IP, and preferably familiar with C and a
502
+scripting language.
503
+</li>
504
+
505
+<li>
506
+<b>An Improved and More Usable Network Map in Vidalia</b>
507
+<br />
508
+Priority: <i>Low to Medium</i>
509
+<br />
510
+Effort Level: <i>Medium</i>
511
+<br />
512
+Skill Level: <i>Medium</i>
513
+<br />
514
+Likely Mentors: <i>Matt</i>
515
+<br />
516
+One of Vidalia's existing features is a network map that shows the user
517
+the approximate geographic location of relays in the Tor network and
518
+plots the paths the user's traffic takes as it is tunneled through the
519
+Tor network. The map is currently not very interactive and has rather
520
+poor graphics. Instead, we implemented KDE's Marble widget such
521
+that it gives us a better quality map and enables improved interactivity,
522
+such as allowing the user to click on individual relays or circuits to
523
+display additional information. We want to add the ability
524
+for users to click on a particular relay or a country containing one or
525
+more Tor exit relays and say, "I want my connections to exit
526
+from here."
527
+<br />
528
+This project will first involve getting familiar with Vidalia
529
+and the Marble widget's API. One will then integrate the widget
530
+into Vidalia and customize Marble to be better suited for our application,
531
+such as making circuits clickable, storing cached map data in Vidalia's
532
+own data directory, and customizing some of the widget's dialogs.
533
+<br />
534
+A person undertaking this project should have good C++ development
535
+experience. Previous experience with Qt and CMake is helpful, but not
536
+required.
537
+</li>
538
+
539
+<li>
540
+<b>Bring moniTor to life</b>
541
+<br />
542
+Priority: <i>Low</i>
543
+<br />
544
+Effort Level: <i>Medium</i>
545
+<br />
546
+Skill Level: <i>Low to Medium</i>
547
+<br />
548
+Likely Mentors: <i>Karsten, Jacob</i>
549
+<br />
550
+Implement a <a href="http://www.ss64.com/bash/top.html">top-like</a>
551
+management tool for Tor relays. The purpose of such a tool would be
552
+to monitor a local Tor relay via its control port and include useful
553
+system information of the underlying machine. When running this tool, it
554
+would dynamically update its content like top does for Linux processes.
555
+<a href="http://archives.seul.org/or/dev/Jan-2008/msg00005.html">This
556
+or-dev post</a> might be a good first read.
557
+<br />
558
+A person interested in this should be familiar
559
+with or willing to learn about administering a Tor relay and configuring
560
+it via its control port. As an initial prototype is written in Python,
561
+some knowledge about writing Python code would be helpful, too. This
562
+project is one part about identifying requirements to such a
563
+tool and designing its interface, and one part lots of coding.
564
+</li>
565
+
566
+<li>
567
+<b>Torbutton equivalent for Thunderbird</b>
568
+<br />
569
+Priority: <i>Low</i>
570
+<br />
571
+Effort Level: <i>High</i>
572
+<br />
573
+Skill Level: <i>High</i>
574
+<br />
575
+Likely Mentors: <i>Mike</i>
576
+<br />
577
+We're hearing from an increasing number of users that they want to use
578
+Thunderbird with Tor. However, there are plenty of application-level
579
+concerns, for example, by default Thunderbird will put your hostname in
580
+the outgoing mail that it sends. At some point we should start a new
581
+push to build a Thunderbird extension similar to Torbutton.
582
+</li>
583
+
584
+<li>
585
+<b>Intermediate Level Network Device Driver</b>
586
+<br />
587
+Priority: <i>Low</i>
588
+<br />
589
+Effort Level: <i>High</i>
590
+<br />
591
+Skill Level: <i>High</i>
592
+<br />
593
+Likely Mentors: <i>Martin</i>
594
+<br />
595
+The WinPCAP device driver used by Tor VM for bridged networking does
596
+not support a number of wireless and non-Ethernet network adapters.
597
+Implementation of a intermediate level network device driver for win32
598
+and 64bit would provide a way to intercept and route traffic over such
599
+networks. This project will require knowledge of and experience with
600
+Windows kernel device driver development and testing. Familiarity with
601
+Winsock and Qemu would also be helpful.
602
+</li>
603
+
604
+<li>
605
+<b>Bring up new ideas!</b>
606
+<br />
607
+Don't like any of these? Look at the <a
608
+href="<svnsandbox>doc/roadmaps/2008-12-19-roadmap-full.pdf">Tor development
609
+roadmap</a> for more ideas.
610
+Some of the <a href="<svnsandbox>doc/spec/proposals/">current proposals</a>
611
+might also be short on developers.
612
+</li>
613
+
614
+<!-- Mike is already working on this.
615
+<li>
616
+<b>Tor Node Scanner improvements</b>
617
+<br />
618
+Similar to the SoaT exit scanner (or perhaps even during exit scanning),
619
+statistics can be gathered about the reliability of nodes. Nodes that
620
+fail too high a percentage of their circuits should not be given
621
+Guard status. Perhaps they should have their reported bandwidth
622
+penalized by some ratio as well, or just get marked as Invalid. In
623
+addition, nodes that exhibit a very low average stream capacity but
624
+advertise a very high node bandwidth can also be marked as Invalid.
625
+Much of this statistics gathering is already done, it just needs to be
626
+transformed into something that can be reported to the Directory
627
+Authorities to blacklist/penalize nodes in such a way that clients
628
+will listen.
629
+<br />
630
+In addition, these same statistics can be gathered about the traffic
631
+through a node. Events can be added to the <a
632
+href="https://svn.torproject.org/svn/torctl/trunk/doc/howto.txt">Tor Control
633
+Protocol</a> to
634
+report if a circuit extend attempt through the node succeeds or fails, and
635
+passive statistics can be gathered on both bandwidth and reliability
636
+of other nodes via a node-based monitor using these events. Such a
637
+scanner would also report information on oddly-behaving nodes to
638
+the Directory Authorities, but a communication channel for this
639
+currently does not exist and would need to be developed as well.
640
+</li>
641
+-->
642
+
643
+<!-- Is this still a useful project? If so, move it to another section.
644
+<li>
645
+<b>Better Debian/Ubuntu Packaging for Tor+Vidalia</b>
646
+<br />
647
+Vidalia currently doesn't play nicely on Debian and Ubuntu with the
648
+default Tor packages. The current Tor packages automatically start Tor
649
+as a daemon running as the debian-tor user and (sensibly) do not have a
650
+<a href="<svnsandbox>doc/spec/control-spec.txt">ControlPort</a> defined
651
+in the default torrc. Consequently, Vidalia will try
652
+to start its own Tor process since it could not connect to the existing
653
+Tor, and Vidalia's Tor process will then exit with an error message
654
+the user likely doesn't understand since Tor cannot bind its listening
655
+ports &mdash; they're already in use by the original Tor daemon.
656
+<br />
657
+The current solution involves either telling the user to stop the
658
+existing Tor daemon and let Vidalia start its own Tor process, or
659
+explaining to the user how to set a control port and password in their
660
+torrc. A better solution on Debian would be to use Tor's ControlSocket,
661
+which allows Vidalia to talk to Tor via a Unix domain socket, and could
662
+possibly be enabled by default in Tor's Debian packages. Vidalia can
663
+then authenticate to Tor using filesystem-based (cookie) authentication
664
+if the user running Vidalia is also in the debian-tor group.
665
+<br />
666
+This project will first involve adding support for Tor's ControlSocket
667
+to Vidalia. The student will then develop and test Debian and Ubuntu
668
+packages for Vidalia that conform to Debian's packaging standards and
669
+make sure they work well with the existing Tor packages. We can also
670
+set up an apt repository to host the new Vidalia packages.
671
+<br />
672
+The next challenge would be to find an intuitive usable way for Vidalia
673
+to be able to change Tor's configuration (torrc) even though it is
674
+located in <code>/etc/tor/torrc</code> and thus immutable. The best
675
+idea we've come up with so far is to feed Tor a new configuration via
676
+the ControlSocket when Vidalia starts, but that's bad because Tor starts
677
+each boot with a different configuration than the user wants. The second
678
+best idea
679
+we've come up with is for Vidalia to write out a temporary torrc file
680
+and ask the user to manually move it to <code>/etc/tor/torrc</code>,
681
+but that's bad because users shouldn't have to mess with files directly.
682
+<br />
683
+A person undertaking this project should have prior knowledge of
684
+Debian package management and some C++ development experience. Previous
685
+experience with Qt is helpful, but not required.
686
+</li>
687
+-->
688
+
689
+<!-- This should be mostly done.
690
+<li>
691
+<b>Tor/Polipo/Vidalia Auto-Update Framework</b>
692
+<br />
693
+We're in need of a good authenticated-update framework.
694
+Vidalia already has the ability to notice when the user is running an
695
+outdated or unrecommended version of Tor, using signed statements inside
696
+the Tor directory information. Currently, Vidalia simply pops
697
+up a little message box that lets the user know they should manually
698
+upgrade. The goal of this project would be to extend Vidalia with the
699
+ability to also fetch and install the updated Tor software for the
700
+user. We should do the fetches via Tor when possible, but also fall back
701
+to direct fetches in a smart way. Time permitting, we would also like
702
+to be able to update other
703
+applications included in the bundled installers, such as Polipo and
704
+Vidalia itself.
705
+<br />
706
+To complete this project, the student will first need to first investigate
707
+the existing auto-update frameworks (e.g., Sparkle on OS X) to evaluate
708
+their strengths, weaknesses, security properties, and ability to be
709
+integrated into Vidalia. If none are found to be suitable, the student
710
+will design their own auto-update framework, document the design, and
711
+then discuss the design with other developers to assess any security
712
+issues. The student will then implement their framework (or integrate
713
+an existing one) and test it.
714
+<br />
715
+A person undertaking this project should have good C++ development
716
+experience. Previous experience with Qt is helpful, but not required. One
717
+should also have a good understanding of common security
718
+practices, such as package signature verification. Good writing ability
719
+is also important for this project, since a vital step of the project
720
+will be producing a design document to review and discuss
721
+with others prior to implementation.
722
+</li>
723
+-->
724
+
725
+<!-- Jake already did most of this.
726
+<li>
727
+<b>Improvements on our active browser configuration tester</b> -
728
+<a href="https://check.torproject.org/">https://check.torproject.org/</a>
729
+<br />
730
+We currently have a functional web page to detect if Tor is working. It
731
+has a few places where it falls short. It requires improvements with
732
+regard to default languages and functionality. It currently only responds
733
+in English. In addition, it is a hack of a perl script that should have
734
+never seen the light of day. It should probably be rewritten in python
735
+with multi-lingual support in mind. It currently uses the <a
736
+href="http://exitlist.torproject.org/">Tor DNS exit list</a>
737
+and should continue to do so in the future. It currently result in certain
738
+false positives and these should be discovered, documented, and fixed
739
+where possible. Anyone working on this project should be interested in
740
+DNS, basic perl or preferably python programming skills, and will have
741
+to interact minimally with Tor to test their code.
742
+<br />
743
+If you want to make the project more exciting
744
+and involve more design and coding, take a look at <a
745
+href="<svnsandbox>doc/spec/proposals/131-verify-tor-usage.txt">proposal
746
+131-verify-tor-usage.txt</a>.
747
+</li>
748
+-->
749
+
394 750
 <!-- If we decide to switch to the exit list in TorStatus, this is obsolete.
395 751
 <li>
396 752
 <b>Improvements on our DNS Exit List service</b> -
... ...
@@ -456,37 +812,6 @@ Also tricky will be adding rate-limiting to Libevent.
456 812
 </li>
457 813
 -->
458 814
 
459
-<li>
460
-<b>Tuneup Tor!</b>
461
-<br />
462
-Priority: <i>Medium to High</i>
463
-<br />
464
-Effort Level: <i>Medium to High</i>
465
-<br />
466
-Skill Level: <i>High</i>
467
-<br />
468
-Likely Mentors: <i>Nick, Roger, Mike, Karsten</i>
469
-<br />
470
-Right now, Tor relays measure and report their own bandwidth, and Tor
471
-clients choose which relays to use in part based on that bandwidth.
472
-This approach is vulnerable to
473
-<a href="http://freehaven.net/anonbib/#bauer:wpes2007">attacks where
474
-relays lie about their bandwidth</a>;
475
-to address this, Tor currently caps the maximum bandwidth
476
-it's willing to believe any relay provides.  This is a limited fix, and
477
-a waste of bandwidth capacity to boot.  Instead,
478
-Tor should possibly measure bandwidth in a more distributed way, perhaps
479
-as described in the
480
-<a href="http://freehaven.net/anonbib/author.html#snader08">"A Tune-up for
481
-Tor"</a> paper
482
-by Snader and Borisov. One could use current testing code to
483
-double-check this paper's findings and verify the extent to which they
484
-dovetail with Tor as deployed in the wild, and determine good ways to
485
-incorporate them into their suggestions Tor network without adding too
486
-much communications overhead between relays and directory
487
-authorities.
488
-</li>
489
-
490 815
 <!--
491 816
 <li>
492 817
 <b>Improving the Tor QA process: Continuous Integration for Windows builds</b>
... ...
@@ -500,106 +825,22 @@ the platforms Tor does. See the
500 825
 <a href="http://en.wikipedia.org/wiki/BuildBot">wikipedia entry for
501 826
 buildbot</a>.<br />
502 827
 There may be better options and the person undertaking this task should
503
-evaluate other options. Any person working on this automatic build
504
-process should have experience or be willing to learn how to build all
505
-of the respective Tor related code bases from scratch. Furthermore, the
506
-person should have some experience building software in Windows
507
-environments as this is the target audience we want to ensure we do not
508
-leave behind. It would require close work with the Tor source code but
509
-probably only in the form of building, not authoring.<br />
510
-Additionally, we need to automate our performance testing for all platforms.
511
-We've got buildbot (except on Windows &mdash; as noted above) to automate
512
-our regular integration and compile testing already,
513
-but we need to get our network simulation tests (as built in torflow)
514
-updated for more recent versions of Tor, and designed to launch a test
515
-network either on a single machine, or across several, so we can test
516
-changes in performance on machines in different roles automatically.
517
-</li>
518
--->
519
-
520
-<li>
521
-<b>Improve our unit testing process</b>
522
-<br />
523
-Priority: <i>Medium</i>
524
-<br />
525
-Effort Level: <i>Medium</i>
526
-<br />
527
-Skill Level: <i>Medium</i>
528
-<br />
529
-Likely Mentors: <i>Nick, Roger</i>
530
-<br />
531
-Tor needs to be far more tested. This is a multi-part effort. To start
532
-with, our unit test coverage should rise substantially, especially in
533
-the areas outside the utility functions. This will require significant
534
-refactoring of some parts of Tor, in order to dissociate as much logic
535
-as possible from globals.
536
-<br />
537
-Additionally, we need to automate our performance testing. We've got
538
-buildbot to automate our regular integration and compile testing already
539
-(though we need somebody to set it up on Windows),
540
-but we need to get our network simulation tests (as built in <a
541
-href="https://svn.torproject.org/svn/torflow/trunk/README">TorFlow</a>)
542
-updated for more recent versions of Tor, and designed to launch a test
543
-network either on a single machine, or across several, so we can test
544
-changes in performance on machines in different roles automatically.
545
-</li>
546
-
547
-<li>
548
-<b>Help revive an independent Tor client implementation</b>
549
-<br />
550
-Priority: <i>Medium</i>
551
-<br />
552
-Effort Level: <i>High</i>
553
-<br />
554
-Skill Level: <i>Medium to High</i>
555
-<br />
556
-Likely Mentors: <i>Karsten, Nick</i>
557
-<br />
558
-Reanimate one of the approaches to implement a Tor client in Java,
559
-e.g. the <a href="http://onioncoffee.sourceforge.net/">OnionCoffee
560
-project</a>, and make it run on <a
561
-href="http://code.google.com/android/">Android</a>. The first step
562
-would be to port the existing code and execute it in an Android
563
-environment. Next, the code should be updated to support the newer Tor
564
-protocol versions like the <a href="<svnsandbox>doc/spec/dir-spec.txt">v3
565
-directory protocol</a>. Further, support for requesting or even
566
-providing Tor hidden services would be neat, but not required.
567
-<br />
568
-A prospective developer should be able to understand and write new Java
569
-code, including
570
-a Java cryptography API. Being able to read C code would be helpful,
571
-too. One should be willing to read the existing documentation,
572
-implement code based on it, and refine the documentation
573
-when things are underdocumented. This project is mostly about coding and
574
-to a small degree about design.
575
-</li>
576
-
577
-<li>
578
-<b>Bring moniTor to life</b>
579
-<br />
580
-Priority: <i>Low</i>
581
-<br />
582
-Effort Level: <i>Medium</i>
583
-<br />
584
-Skill Level: <i>Low to Medium</i>
585
-<br />
586
-Likely Mentors: <i>Karsten, Jacob</i>
587
-<br />
588
-Implement a <a href="http://www.ss64.com/bash/top.html">top-like</a>
589
-management tool for Tor relays. The purpose of such a tool would be
590
-to monitor a local Tor relay via its control port and include useful
591
-system information of the underlying machine. When running this tool, it
592
-would dynamically update its content like top does for Linux processes.
593
-<a href="http://archives.seul.org/or/dev/Jan-2008/msg00005.html">This
594
-or-dev post</a> might be a good first read.
595
-<br />
596
-A person interested in this should be familiar
597
-with or willing to learn about administering a Tor relay and configuring
598
-it via its control port. As an initial prototype is written in Python,
599
-some knowledge about writing Python code would be helpful, too. This
600
-project is one part about identifying requirements to such a
601
-tool and designing its interface, and one part lots of coding.
828
+evaluate other options. Any person working on this automatic build
829
+process should have experience or be willing to learn how to build all
830
+of the respective Tor related code bases from scratch. Furthermore, the
831
+person should have some experience building software in Windows
832
+environments as this is the target audience we want to ensure we do not
833
+leave behind. It would require close work with the Tor source code but
834
+probably only in the form of building, not authoring.<br />
835
+Additionally, we need to automate our performance testing for all platforms.
836
+We've got buildbot (except on Windows &mdash; as noted above) to automate
837
+our regular integration and compile testing already,
838
+but we need to get our network simulation tests (as built in torflow)
839
+updated for more recent versions of Tor, and designed to launch a test
840
+network either on a single machine, or across several, so we can test
841
+changes in performance on machines in different roles automatically.
602 842
 </li>
843
+-->
603 844
 
604 845
 <!-- Removed, unless Mike still wants this to be in.
605 846
 <li>
... ...
@@ -622,31 +863,6 @@ with not too much involvement in the Tor internals.
622 863
 </li>
623 864
 -->
624 865
 
625
-<li>
626
-<b>Improving Polipo on Windows</b>
627
-<br />
628
-Priority: <i>Medium to High</i>
629
-<br />
630
-Effort Level: <i>Medium</i>
631
-<br />
632
-Skill Level: <i>Medium</i>
633
-<br />
634
-Likely Mentors: <i>Martin</i>
635
-<br />
636
-Help port <a
637
-href="http://www.pps.jussieu.fr/~jch/software/polipo/">Polipo</a> to
638
-Windows. Example topics to tackle include:
639
-1) the ability to asynchronously
640
-query name servers, find the system nameservers, and manage netbios
641
-and dns queries.
642
-2) manage events and buffers
643
-natively (i.e. in Unix-like OSes, Polipo defaults to 25% of ram, in
644
-Windows it's whatever the config specifies). 3) some sort of GUI config
645
-and reporting tool, bonus if it has a systray icon with right clickable
646
-menu options. Double bonus if it's cross-platform compatible.
647
-4) allow the software to use the Windows Registry and handle proper Windows directory locations, such as "C:\Program Files\Polipo"
648
-</li>
649
-
650 866
 <!-- Is Blossom development still happening?
651 867
 <li>
652 868
 <b>Rework and extend Blossom</b>
... ...
@@ -698,81 +914,6 @@ the core of the Blossom effort.
698 914
 </li>
699 915
 -->
700 916
 
701
-<li>
702
-<b>Implement a torrent-based scheme for downloading Thandy packages</b>
703
-<br />
704
-Priority: <i>Medium to High</i>
705
-<br />
706
-Effort Level: <i>High</i>
707
-<br />
708
-Skill Level: <i>Medium to High</i>
709
-<br />
710
-Likely Mentors: <i>Martin, Nick</i>
711
-<br />
712
-<a
713
-href="http://git.torproject.org/checkout/thandy/master/specs/thandy-spec.txt">Thandy</a>
714
-is a relatively new software to allow assisted updates of Tor and related
715
-software. Currently, there are very few users, but we expect Thandy to be
716
-used by almost every Tor user in the future. To avoid crashing servers on
717
-the day of a Tor update, we need new ways to distribute new packages
718
-efficiently, and using libtorrent seems to be a possible solution. If you
719
-think of other good ideas, great - please do let us know!<br />
720
-We also need to investigate how to include our mirrors better. If possible,
721
-there should be an easy way for them to help distributing the packages.
722
-</li>
723
-
724
-<li>
725
-<b>Torbutton equivalent for Thunderbird</b>
726
-<br />
727
-Priority: <i>Low</i>
728
-<br />
729
-Effort Level: <i>High</i>
730
-<br />
731
-Skill Level: <i>High</i>
732
-<br />
733
-Likely Mentors: <i>Mike</i>
734
-<br />
735
-We're hearing from an increasing number of users that they want to use
736
-Thunderbird with Tor. However, there are plenty of application-level
737
-concerns, for example, by default Thunderbird will put your hostname in
738
-the outgoing mail that it sends. At some point we should start a new
739
-push to build a Thunderbird extension similar to Torbutton.
740
-</li>
741
-
742
-<li>
743
-<b>New Torbutton Features</b>
744
-<br />
745
-Priority: <i>Medium</i>
746
-<br />
747
-Effort Level: <i>High</i>
748
-<br />
749
-Skill Level: <i>High</i>
750
-<br />
751
-Likely Mentors: <i>Mike</i>
752
-<br/>
753
-There are several <a
754
-href="https://bugs.torproject.org/flyspray/index.php?tasks=all&amp;project=5&amp;type=2">good
755
-feature requests</a> on the Torbutton Flyspray section. In particular, <a
756
-href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=523">Integrating
757
-'New Identity' with Vidalia</a>,
758
-<a href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=940">ways of
759
-managing multiple cookie jars/identities</a>, <a
760
-href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=637">preserving
761
-specific cookies</a> when cookies are cleared,
762
-<a
763
-href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=524">better
764
-referrer spoofing</a>, <a
765
-href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=564">correct
766
-Tor status reporting</a>, and <a
767
-href="https://bugs.torproject.org/flyspray/index.php?do=details&amp;id=462">"tor://"
768
-and "tors://" urls</a> are all interesting
769
-features that could be added.
770
-<br />
771
-This work would be independent coding in Javascript and the fun world of <a
772
-href="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">XUL</a>,
773
-with not too much involvement in the Tor internals.
774
-</li>
775
-
776 917
 <!-- not really suited for GSoC; integrated into TBB for Linux/Mac OS X
777 918
 <li>
778 919
 <b>Usability testing of Tor</b>
... ...
@@ -792,147 +933,6 @@ structured process would be better.
792 933
 </li>
793 934
 -->
794 935
 
795
-<li>
796
-<b>Translation wiki for our website</b>
797
-<br />
798
-Priority: <i>High</i>
799
-<br />
800
-Effort Level: <i>Medium</i>
801
-<br />
802
-Skill Level: <i>Medium</i>
803
-<br />
804
-Likely Mentors: <i>Jacob</i>
805
-<br />
806
-The Tor Project has been working over the past year to set up web-based
807
-tools to help volunteers translate our applications into other languages.
808
-We finally hit upon Pootle, and we have a fine web-based translation engine
809
-in place for Vidalia, Torbutton, and Torcheck. However, Pootle only
810
-translates strings that are in the "po" format, and our website uses wml
811
-files. This project is about finding a way to convert our wml files into po
812
-strings and back, so they can be handled by Pootle.
813
-</li>
814
-
815
-<li>
816
-<b>New Thandy Features</b>
817
-<br />
818
-Priority: <i>Medium</i>
819
-<br />
820
-Effort Level: <i>Medium</i>
821
-<br />
822
-Skill Level: <i>Medium to High</i>
823
-<br />
824
-Likely Mentors: <i>Martin</i>
825
-<br />
826
-Additional capabilities are needed for assisted updates of all the Tor
827
-related software for Windows and other operating systems. Some of the
828
-features to consider include:
829
-1) Integration of the <a
830
-href="http://chandlerproject.org/Projects/MeTooCrypto">MeTooCrypto
831
-Python library</a>
832
-for authenticated HTTPS downloads. 2) Adding a level of indirection
833
-between the timestamp signatures and the package files included in an
834
-update. See the "Thandy attacks / suggestions" thread on or-dev.
835
-3) Support locale specific installation and configuration of assisted
836
-updates based on preference, host, or user account language settings.
837
-Familiarity with Windows codepages, unicode, and other character sets
838
-is helpful in addition to general win32 and posix API experience and
839
-Python proficiency.
840
-</li>
841
-
842
-<li>
843
-<b>Intermediate Level Network Device Driver</b>
844
-<br />
845
-Priority: <i>Low</i>
846
-<br />
847
-Effort Level: <i>High</i>
848
-<br />
849
-Skill Level: <i>High</i>
850
-<br />
851
-Likely Mentors: <i>Martin</i>
852
-<br />
853
-The WinPCAP device driver used by Tor VM for bridged networking does
854
-not support a number of wireless and non-Ethernet network adapters.
855
-Implementation of a intermediate level network device driver for win32
856
-and 64bit would provide a way to intercept and route traffic over such
857
-networks. This project will require knowledge of and experience with
858
-Windows kernel device driver development and testing. Familiarity with
859
-Winsock and Qemu would also be helpful.
860
-</li>
861
-
862
-<li>
863
-<b>Tor Browser Bundle for Linux/Mac OS X</b>
864
-<br />
865
-Priority: <i>High</i>
866
-<br />
867
-Effort Level: <i>High</i>
868
-<br />
869
-Skill Level: <i>Medium</i>
870
-<br />
871
-Likely Mentors: <i>Steven, Andrew</i>
872
-<br />
873
-The Tor Browser bundle incorporates Tor, Firefox, and the Vidalia user
874
-interface (and optionally Pidgin IM). Components are pre-configured to
875
-operate in a secure way, and it has very few dependencies on the
876
-installed operating system. It has therefore become one of the most
877
-easy to use, and popular, ways to use Tor on Windows.
878
-<br />
879
-However, there is currently no comparable package for Linux and Mac OS
880
-X, so this project would be to implement Tor Browser Bundle for these
881
-platforms. This will involve modifications to Vidalia (C++), possibly
882
-Firefox (C) then creating and testing the launcher on a range of
883
-operating system versions and configurations to verify portability.
884
-<br />
885
-Students should be familiar with application development on one or
886
-preferably both of Linux and Mac OS X, and be comfortable with C/C++
887
-and shell scripting.
888
-<br />
889
-Part of this project could be usability testing of Tor Browser Bundle,
890
-ideally amongst our target demographic.
891
-That would help a lot in knowing what needs to be done in terms of bug
892
-fixes or new features. We get this informally at the moment, but a more
893
-structured process would be better.
894
-</li>
895
-
896
-<li>
897
-<b>Simulator for slow Internet connections</b>
898
-<br />
899
-Priority: <i>Medium</i>
900
-<br />
901
-Effort Level: <i>Medium</i>
902
-<br />
903
-Skill Level: <i>Medium</i>
904
-<br />
905
-Likely Mentors: <i>Steven</i>
906
-<br />
907
-Many users of Tor have poor-quality Internet connections, giving low
908
-bandwidth, high latency, and high packet loss/re-ordering. User
909
-experience is that Tor reacts badly to these conditions, but it is
910
-difficult to improve the situation without being able to repeat the
911
-problems in the lab.
912
-<br />
913
-This project would be to build a simulation environment which
914
-replicates the poor connectivity so that the effect on Tor performance
915
-can be measured. Other components would be a testing utility to
916
-establish what are the properties of connections available, and to
917
-measure the effect of performance-improving modifications to Tor.
918
-<br />
919
-The tools used would be up to the student, but dummynet (for FreeBSD)
920
-and nistnet (for Linux) are two potential components on which this
921
-project could be built. Students should be experienced with network
922
-programming/debugging and TCP/IP, and preferably familiar with C and a
923
-scripting language.
924
-</li>
925
-
926
-<li>
927
-<b>Bring up new ideas!</b>
928
-<br />
929
-Don't like any of these? Look at the <a
930
-href="<svnsandbox>doc/roadmaps/2008-12-19-roadmap-full.pdf">Tor development
931
-roadmap</a> for more ideas.
932
-Some of the <a href="<svnsandbox>doc/spec/proposals/">current proposals</a>
933
-might also be short on developers.
934
-</li>
935
-
936 936
 </ol>
937 937
 
938 938
 <a id="OtherCoding"></a>
939 939