aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorng0 <ng0@n0.is>2019-03-22 12:30:10 +0000
committerng0 <ng0@n0.is>2019-03-22 12:30:10 +0000
commitb9d3f0a1f804ab6a5863014ab5a7353a894335da (patch)
tree3e0798361fe9929c259532913740de228d2d87b5
parent5867aa933ae5f1a73d41a210b94de6359f280edd (diff)
downloadwww-b9d3f0a1f804ab6a5863014ab5a7353a894335da.tar.gz
www-b9d3f0a1f804ab6a5863014ab5a7353a894335da.zip
Import older gsoc
-rw-r--r--template/gsoc.html.j2331
1 files changed, 321 insertions, 10 deletions
diff --git a/template/gsoc.html.j2 b/template/gsoc.html.j2
index 7d4a19ea..312d6153 100644
--- a/template/gsoc.html.j2
+++ b/template/gsoc.html.j2
@@ -23,7 +23,10 @@
23 It is time for GNUnet to run properly on Android. Note that 23 It is time for GNUnet to run properly on Android. Note that
24 GNUnet is written in C, and this is not about rewriting 24 GNUnet is written in C, and this is not about rewriting
25 GNUnet in Java, but about getting the C code to run on Android. 25 GNUnet in Java, but about getting the C code to run on Android.
26 <br> 26 {% endtrans %}
27 </p>
28 <p>
29 {% trans %}
27 Mentor: <a href="https://www.goebel-consult.de/">Hartmut Goebel</a> 30 Mentor: <a href="https://www.goebel-consult.de/">Hartmut Goebel</a>
28 {% endtrans %} 31 {% endtrans %}
29 </p> 32 </p>
@@ -41,7 +44,10 @@
41 regression analysis. Running jobs only when dependencies have changed 44 regression analysis. Running jobs only when dependencies have changed
42 and scripting more granular triggers or ideally automatic dependency 45 and scripting more granular triggers or ideally automatic dependency
43 discovery (as done by the autotools) is also important. 46 discovery (as done by the autotools) is also important.
44 <br> 47 {% endtrans %}
48 </p>
49 <p>
50 {% trans %}
45 Mentor: TBD 51 Mentor: TBD
46 {% endtrans %} 52 {% endtrans %}
47 </p> 53 </p>
@@ -158,16 +164,321 @@
158 {% endtrans %} 164 {% endtrans %}
159 </p> 165 </p>
160 </section> 166 </section>
167 <!-- Past projects: Previously proposed, but left unfinished. Inspiration for students. -->
168 <h2>{{ _("Past projects") }}</h2>
169 <section>
170 <h4>Rust APIs for GNUnet services</h4>
171 <p>
172 {% trans %}
173 There are a variety of GNUNet APIs that should be
174 exposed in the Rust wrappers. Implementing these will
175 require extending the port of GNUNet utils written by
176 Andrew Cann and Kelong Cong.
177 {% endtrans %}
178 </p>
179 <p>
180 {% trans %}
181 As an introduction to the code base, we suggest that the
182 student and Jeff Burdges together update the
183 asynchronous IO system from gjio to futures-rs or
184 another layer built upon it. Jeff Burdges is expected
185 to concurrently be implementing a GNUNet API for his own
186 mix network work.
187 {% endtrans %}
188 </p>
189 <p>
190 {% trans %}
191 Mentors: Jeff Burdges
192 {% endtrans %}
193 </p>
194 <p>
195 {% trans %}
196 Required Skills: Rust
197 {% endtrans %}
198 </p>
199 <p>
200 {% trans %}
201 Difficulty level: low
202 {% endtrans %}
203 </p>
204 </section>
205 <section>
206 <h3>Tor compatibility for GNUnet</h3>
207 <p>
208 {% trans %}
209 Implement the AnycastExit spec to enable GNUnet clients
210 to connect over Tor.
211 {% endtrans %}
212 </p>
213 <p>
214 {% trans %}
215 Mentor: Jeff Burdges
216 {% endtrans %}
217 </p>
218 <p>
219 {% trans %}
220 Note: There was a Special TLDs spec to allow Tor to
221 resolve domain names using GNS over Tor too, but
222 currently that's on hold until folks think more about
223 how names should be moved around the local system. We're
224 calling this more collaborative approach NSS2 for now.
225 {% endtrans %}
226 </p>
227 <p>
228 {% trans %}
229 Required Skills: C
230 {% endtrans %}
231 </p>
232 <p>
233 {% trans %}
234 Difficulty level: medium
235 {% endtrans %}
236 </p>
237 </section>
238 <section>
239 <h3>Android compatibility for GNUnet</h3>
240 <p>
241 {% trans %}
242 Implement rudimentary Android compatibility for GNUnet,
243 in part by porting the GNUnet utils scheduler to act as
244 a thin wrapper over libuv.
245 {% endtrans %}
246 </p>
247 <p>
248 {% trans %}
249 Mentors: Jeff Burdges and Christian Grothoff
250 {% endtrans %}
251 </p>
252 </section>
253 <section>
254 <h3>Implementation of a replacement for PANDA</h3>
255 <p>
256 {% trans %}
257 Implementation of a replacement for PANDA (see Pond)
258 with better security, and maybe integration with the GNU
259 Name System for key exchange.
260 {% endtrans %}
261 </p>
262 <p>
263 {% trans %}
264 Mentor: Jeff Burdges
265 {% endtrans %}
266 </p>
267 <p>
268 {% trans %}
269 Required Skills: Rust or C, crypto
270 {% endtrans %}
271 </p>
272 <p>
273 {% trans %}
274 Difficulty level: high
275 {% endtrans %}
276 </p>
277 </section>
278 <section>
279 <h3>GNUnet Web-based User Interface</h3>
280 <p>
281 {% trans %}
282 Implementation of a Web-based UI for GNUnet similar to
283 GNUnet-Gtk with a yet to be determined framework such as
284 Angular2. This includes the design and implementation of
285 not yet existing <a href="http://jsonapi.org/">REST APIs</a>
286 that expose the
287 <a href="https://gnunet.org/doxygen/modules.html">GNUnet API</a>.
288 {% endtrans %}
289 </p>
290 <p>
291 {% trans %}
292 Mentor: Martin Schanzenbach
293 {% endtrans %}
294 </p>
295 <p>
296 {% trans %}
297 Required Skills: C, JavaScript, CSS
298 {% endtrans %}
299 </p>
300 <p>
301 {% trans %}
302 Difficulty level: medium
303 {% endtrans %}
304 </p>
305 </section>
306 <section>
307 <h3>secushare: Implement social networking features on top of pubsub channels</h3>
308 <p>
309 {% trans %}
310 Implement different place types and file sharing by
311 creating a new place for the shared content.
312 {% endtrans %}
313 </p>
314 <p>
315 {% trans %}
316 Place types to be implemented:
317 {% endtrans %}
318 </p>
319 {% trans %}
320 <ul>
321 <li>File: generic file with comments</li>
322 <li>Image: display an image with comments referencing a region of the image</li>
323 <li>Sound: play a sound file with comments referencing a timestamp</li>
324 <li>Directory/Album: pointers to File / Image / Sound places</li>
325 <li>Event: with RSVP</li>
326 <li>Survey: ask your social neighborhood questions in a structured form</li>
327 </ul>
328 {% endtrans %}
329 <p>
330 {% trans %}
331 Also provide the following UI functionality:
332 {% endtrans %}
333 </p>
334 {% trans %}
335 <ul>
336 <li>Fork existing channels, reorganize people into new chatrooms or channels.</li>
337 <li>Share a post (edit and repost something elsewhere, on a fan page for example).</li>
338 <li>Edit a previously published post + offer edit history to readers.</li>
339 <li>Control expiry of channel history.</li>
340 </ul>
341 {% endtrans %}
342 <p>
343 {% trans %}
344 See also <a href="http://secushare.org/features">http://secushare.org/features</a>
345 {% endtrans %}
346 </p>
347 <p>
348 {% trans %}
349 Mentors: lynX
350 {% endtrans %}
351 </p>
352 <p>
353 {% trans %}
354 Required Skills: C/C++
355 {% endtrans %}
356 </p>
357 <p>
358 {% trans %}
359 Difficulty level: high
360 {% endtrans %}
361 </p>
362 </section>
363 <section>
364 <h4>secushare: Implement a Social Graph API for adoption and more</h4>
365 <p>
366 {% trans %}
367 Implement aggregation of distributed state from
368 various channels
369 in order to provide for a powerful social graph API capable of
370 producing social network profiles, dashboards,
371 a calendar out of
372 upcoming event invitations (if available),
373 social search functionality
374 and most of all to make it easy for users to
375 adopt cryptographic
376 identities of their contacts/friends simply by finding
377 them in the
378 social graph of their
379 existing contacts ("This is Linda. You have 11
380 contacts in common with her. [ADD]").
381 {% endtrans %}
382 </p>
383 <p>
384 {% trans %}
385 Related to
386 <a href="http://secushare.org/rendezvous">secushare.org/rendezvous</a>
387 {% endtrans %}
388 </p>
389 <p>
390 {% trans %}
391 Mentors: t3sserakt, lynX
392 {% endtrans %}
393 </p>
394 <p>
395 {% trans %}
396 Required Skills: C
397 {% endtrans %}
398 </p>
399 <p>
400 {% trans %}
401 Difficulty level: high
402 {% endtrans %}
403 </p>
404 </section>
405 <section>
406 <h4>secushare: Implement integration with tradition e-mail</h4>
407 {% trans %}
408 <ul>
409 <li>
410 Emulate IMAP/SMTP protocols as necessary to transform
411 traditional mail clients into secushare user
412 interfaces.
413 </li>
414 <li>
415 Think of ways to map e-mail addresses to secushare
416 identities.
417 </li>
418 <li>
419 Encode or translate various e-mail features into
420 secushare equivalents.
421 </li>
422 <li>
423 Parts of secushare are currently written in Rust,
424 therefore Rust is preferred for this task but it is
425 not an requirement.
426 </li>
427 </ul>
428 {% endtrans %}
429 <p>
430 {% trans %}
431 Mentors: t3sserakt, lynX
432 {% endtrans %}
433 </p>
434 <p>
435 {% trans %}
436 Required Skills: C
437 {% endtrans %}
438 </p>
439 <p>
440 {% trans %}
441 Difficulty level: high
442 {% endtrans %}
443 </p>
444 </section>
445 <section>
446 <h4>GNUnet auction</h4>
447 <p>
448 {% trans %}
449 Implementation of the GNUnet auction system described in
450 Chapter 3 of
451 <a href="https://gnunet.org/libbrand-thesis">this thesis</a>.
452 Specific tasks are adding smart
453 contract creation and round time enforcement to
454 libbrandt as well as creating the
455 GNUnet auction service, library and the three user interface
456 programs create, info and join.
457 {% endtrans %}
458 </p>
459 <p>
460 {% trans %}
461 Mentors: mate, cg
462 {% endtrans %}
463 </p>
464 <p>
465 {% trans %}
466 Required Skills: C
467 {% endtrans %}
468 </p>
469 <p>
470 {% trans %}
471 Difficulty level: medium
472 {% endtrans %}
473 </p>
474 </section>
161 <!-- 475 <!--
162 Past projects: Previously proposed, but left 476 <h2>{{ _("Finished projects") }}</h2>
163 unfinished. Inspiration for students. 477 -->
164 -->
165 <!-- <h2>{{ _("Past projects") }}</h2> -->
166 <!-- 478 <!--
167 Commentary: Finished projects, descriptions and 479 Commentary: Finished projects, descriptions and
168 Links to write-ups about them. 480 Links to write-ups about them.
169 --> 481 -->
170 <!-- <h2>{{ _("Finished projects") }}</h2> -->
171 </div> 482 </div>
172 </article> 483 </article>
173{% endblock body_content %} 484{% endblock body_content %}