www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www/software/soc-projects ideas-2023.html


From: Jason Self
Subject: www/software/soc-projects ideas-2023.html
Date: Wed, 8 Feb 2023 10:01:36 -0500 (EST)

CVSROOT:        /web/www
Module name:    www
Changes by:     Jason Self <jxself>     23/02/08 10:01:36

Added files:
        software/soc-projects: ideas-2023.html 

Log message:
        Temporarily add SOC ideas 2023 file while working on underlying problem

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/software/soc-projects/ideas-2023.html?cvsroot=www&rev=1.1

Patches:
Index: ideas-2023.html
===================================================================
RCS file: ideas-2023.html
diff -N ideas-2023.html
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ ideas-2023.html     8 Feb 2023 15:01:36 -0000       1.1
@@ -0,0 +1,926 @@
+<!--#include virtual="/server/header.html" -->
+<title>Summer of Code project suggestions for GNU</title>
+<meta http-equiv="Keywords" content="GNU, FSF, Free Software Foundation, 
Linux, Emacs, GCC, UNIX, Free Software, Operating System, GNU Kernel, Hurd, GNU 
Hurd" />
+<meta http-equiv="Description" content="Since 1983, developing the free UNIX 
style operating system GNU, so that computer users can have the freedom to 
share and improve the software they use." />
+<!--#include virtual="/server/banner.html" -->
+
+<h1>Summer of Code projects for GNU</h1>
+
+<p>This page has the project suggestions for GNU's participation in
+<a href="https://developers.google.com/open-source/gsoc/";>Google Summer of 
Code 2023</a>.
+</p>
+
+<div id="urgent">
+<strong>STUDENTS - BEFORE YOU SUBMIT YOUR PROJECT
+PROPOSAL</strong>:<br/> 
+<p>Please read the <a href="guidelines.html">GNU Project's guidelines
+for Summer of Code projects</a>.</p>
+<p>Most importantly, please make sure you include all the information
+requested.  If you have questions, please ask <a
+href="mailto:summer-of-code@gnu.org";>summer-of-code@gnu.org</a> (list
+info <a 
href="http://lists.gnu.org/mailman/listinfo/summer-of-code/";>here</a>).</p>
+<p><b>Please note that you are not bound to use these ideas, you can
+propose a new project.  It is a good idea to find a mentor and
+discuss the idea before submit it.</b></p>
+</div>
+
+<hr/>
+<h2>Project suggestions</h2>
+
+<p>GNU is a large and complex project, and thus is subdivided into
+  packages, which are relatively independent projetcts. In Summer of
+  Code, GNU acts as an umbrella organization for its packages. The
+  ideas here are grouped by package.  Many packages have more than one
+  suggestion, or even their own ideas page.</p>
+
+
+<p>
+  <a href="#aris">aris</a>|
+  <a href="#gnunet">GNUnet</a>|
+  <a href="#hurd">GNU Hurd</a>|
+  <a href="#cobol">GnuCOBOL</a>|
+  <a href="#xaos">XaoS</a>
+<!--
+  <a href="#guix">guix</a>|
+  <a href="#mes">mes</a>|
+  <a href="#xaos">XaoS</a>|
+  <a href="#gnuastro">GNU Astronomy Utilities</a>|
+  <a href="#taler">Taler</a>|
+
+<!--
+  <a href="#poke">GNU poke</a>|
+  <a href="#social">GNU Social</a>|
+  <a href="#lilypond">Lilypond</a>|
+  <a href="#cobol">GnuCOBOL</a>|
+  <a href="#wget">wget</a>|
+  <a href="#libmicrohttpd">libmicrohttpd</a>|
+  <a href="#gnucap">Gnucap</a>|
+  <a href="#texmacs">TeXmacs</a>|
+  <a href="#emacs">Emacs</a>
+  <a href="#lilypond">Lilypond</a>|
+  <a href="#clisp">CLISP</a>|
+  <a href="#shepherd">Shepherd</a>|
+  <a href="#taler">Taler</a>|
+  <a href="#libmicrohttpd">libmicrohttpd</a>|
+  <a href="#kawa">Kawa</a>|
+  <a href="#gnustep">GNUstep</a>|
+  <a href="#hurd">GNU Hurd</a>|
+-->
+</p>
+
+<hr/>
+<h2>Ideas</h2>
+
+<h3 id="aris"><a href="https://www.gnu.org/software/aris";>GNU Aris</a></h3>
+
+<p>
+  GNU Aris is a logical proof program that supports propositional and
+  predicate logic, as well as Boolean algebra and arithmetical logic,
+  in the form of abstract sequences.
+</p>
+
+<ul>
+  <li><strong>Project site:</strong> <a 
href="https://www.gnu.org/s/aris";>https://www.gnu.org/s/aris</a>
+  </li>
+</ul>
+
+<h4>Add a web user interface to GNU Aris</h4>
+
+<p>
+  GNU Aris can be successfully used in explaining some basic concepts
+  of propositional and predicate logic. Its user interface is based on
+  GTK which prevents usage on certain platforms. By targeting the web
+  platform, end users could have the opportunity to access a unified
+  interface. This could be a great step in teaching and learning
+  concepts in logic.
+</p>
+
+<ul>
+  <li><strong>Required skills:</strong> C programming, basic knowledge of
+    WebAssembly, emscripten, HTML.
+  </li>
+  <li><strong>Contact:</strong> <a 
href="mailto:bug-aris@gnu.org";>bug-aris@gnu.org</a>.
+  </li>
+  <li><strong>Reference links:</strong>
+    <ul>
+      <li><a 
href="https://www.gnu.org/software/aris/manual/";>https://www.gnu.org/software/aris/manual/</a>
+      </li>
+      <li><a href="https://emscripten.org/";>https://emscripten.org/</a>
+      </li>
+    </ul>
+</ul>
+
+<h3 id="gnunet"><a href="http://www.gnu.org/software/gnunet";>GNUnet</a></h3>
+
+<img align="right" width="160" 
src="https://www.gnunet.org/images/gnunet-logo-dark-no-text.png"; />
+
+<p>
+GNUnet is an alternative network stack for building secure,
+decentralized and privacy-preserving distributed applications. Our
+goal is to replace the old insecure Internet protocol stack. Starting
+from an application for secure publication of files, it has grown to
+include all kinds of basic protocol components and applications
+towards the creation of a GNU internet.
+</p>
+
+<p>GNUnet maintains a list of ideas here:
+  <a 
href="https://stage.gnunet.org/en/gsoc.html";>https://stage.gnunet.org/en/gsoc.html</a>.</p>
+
+<h3 id="hurd"><a href="https://www.gnu.org/software/hurd";>GNU Hurd</a></h3>
+
+<img align="right" width="160" 
src="https://www.gnu.org/graphics/hurd_sm_mf.png"; />
+
+<p>
+The GNU Hurd is the GNU project's replacement for the Unix kernel. It
+is a collection of servers that run on the Mach microkernel to
+implement file systems, network protocols, file access control, and
+other features that are implemented by the Unix kernel or similar
+kernels (such as Linux).
+</p>
+
+<ul>
+  <li><strong>Project site:</strong> <a 
href="https://www.gnu.org/s/hurd";>https://www.gnu.org/s/hurd</a>
+  </li>
+</ul>
+
+<h4>Porting Rust to GNU/Hurd</h4>
+
+<p>
+  The goal of this project is to make the Rust language
+  (<a href="https://www.rust-lang.org/";>https://www.rust-lang.org/</a>)
+  available on GNU/Hurd.
+</p>
+<p>
+  The Rust language is being used more and more widely, and notably in
+  rather fundamental libraries such as librsvg or
+  python-cryptography. It is thus more and more pressing for GNU/Hurd
+  to have a compiler for Rust.
+</p>
+<p>
+  The Rust compiler itself is quite portable, but its runtime library,
+  libstd, needs to be ported to the GNU/Hurd system. This essentially
+  consists in telling Rust how the standard C library functions can be
+  called.
+</p>
+<p>
+  And example of the main part of such port can be seen for the
+  VxWorks port:
+  <a 
href="https://github.com/rust-lang/libc/blob/master/src/vxworks/mod.rs";>https://github.com/rust-lang/libc/blob/master/src/vxworks/mod.rs</a>
+</p>
+<p>
+  The bulk of such a file can be mostly generated from the libc C
+  headers thanks to the bindgen tool, it then needs to be cleaned up
+  and integrated into the Rust build infrastructure, some preliminary
+  work had already been investigated in that part.
+</p>
+<p>
+  A cross-bootstrap from Linux will then need to be achieved to build
+  rustc and cargo, and then it will be self-hosted on GNU/Hurd.
+</p>
+
+<ul>
+  <li><strong>Required skills:</strong> A good level of C programming
+will be welcome to understand the questions of ABI and the libc C
+functions being bound. Knowing the Rust language is not required: it
+can be learnt along the way, this can be a good occasion.
+  </li>
+  <li><strong>Contact:</strong> <a 
href="mailto:bug-hurd@gnu.org";>bug-hurd@gnu.org</a>.
+  </li>
+  <li><strong>Reference links:</strong>
+    <ul>
+      <li><a 
href="https://darnassus.sceen.net/~hurd-web/community/gsoc/project_ideas/rust/";>https://darnassus.sceen.net/~hurd-web/community/gsoc/project_ideas/rust/</a>
+      </li>
+      <li><a href="https://www.rust-lang.org/";>https://www.rust-lang.org/</a>
+      </li>
+      <li><a 
href="https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html";>https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html</a>
+      </li>
+    </ul>
+</ul>
+
+<h3 id="cobol"><a 
href="https://www.gnu.org/software/gnucobol";>GnuCOBOL</a></h3>
+
+<p>
+GnuCOBOL is a free, modern COBOL compiler. It implements a substantial
+part of the COBOL 85, X/Open COBOL and newer ISO COBOL standards
+(2002, 2014, 2023), as well as many extensions included in other COBOL
+compilers (IBM COBOL, MicroFocus COBOL, ACUCOBOL-GT and others).
+</p>
+<p>
+GnuCOBOL translates COBOL into C and internally compiles the
+translated code using a native C compiler, therefore works on nearly
+every platform.
+</p>
+
+<ul>
+  <li><strong>Project site:</strong> <a 
href="https://www.gnu.org/s/gnucobol";>https://www.gnu.org/s/gnucobol</a>
+  </li>
+</ul>
+
+<h4>Add a web user interface to XaoS</h4>
+
+<p>
+  XaoS has a Qt interface, but to use it, end users require to
+  download and install the software. This is not always possible,
+  which is most problematic in schools and classrooms. The Qt system
+  allows compiling the code into a HTML/JavaScript/WebAssembly
+  application, however, the current version of XaoS is malfunctioning
+  on the web platform because of a non-conform way of the
+  implementation of realtime animation. In this project a fully
+  working web application is to be implemented.
+</p>
+
+<ul>
+  <li><strong>Required skills:</strong> C/C++ programming, good
+knowledge of Qt and WebAssembly, HTML, JavaScript.
+  </li>
+  <li><strong>Contact:</strong> <a 
href="https://github.com/xaos-project";>https://github.com/xaos-project</a>.
+  </li>
+  <li><strong>Reference links:</strong>
+    <ul>
+      <li><a 
href="https://github.com/xaos-project/xaos-project.github.io";>https://github.com/xaos-project/xaos-project.github.io</a>
+      </li>
+      <li><a 
href="https://github.com/xaos-project/XaoSjs";>https://github.com/xaos-project/XaoSjs</a>
+      </li>
+    </ul>
+</ul>
+
+<h3 id="xaos"><a href="https://www.gnu.org/software/xaos";>GNU XaoS</a></h3>
+
+<p>
+  XaoS (pronounced chaos) is a realtime interactive fractal zoomer.
+</p>
+
+<ul>
+  <li><strong>Project site:</strong> <a 
href="https://github.com/xaos-project";>https://www.gnu.org/s/xaos</a>
+  </li>
+</ul>
+
+<h4>Add a web user interface to XaoS</h4>
+
+<p>
+  XaoS has a Qt interface, but to use it, end users require to
+  download and install the software. This is not always possible,
+  which is most problematic in schools and classrooms. The Qt system
+  allows compiling the code into a HTML/JavaScript/WebAssembly
+  application, however, the current version of XaoS is malfunctioning
+  on the web platform because of a non-conform way of the
+  implementation of realtime animation. In this project a fully
+  working web application is to be implemented.
+</p>
+
+<ul>
+  <li><strong>Required skills:</strong> C/C++ programming, good
+knowledge of Qt and WebAssembly, HTML, JavaScript.
+  </li>
+  <li><strong>Contact:</strong> <a 
href="https://github.com/xaos-project";>https://github.com/xaos-project</a>.
+  </li>
+  <li><strong>Reference links:</strong>
+    <ul>
+      <li><a 
href="https://github.com/xaos-project/xaos-project.github.io";>https://github.com/xaos-project/xaos-project.github.io</a>
+      </li>
+      <li><a 
href="https://github.com/xaos-project/XaoSjs";>https://github.com/xaos-project/XaoSjs</a>
+      </li>
+    </ul>
+</ul>
+
+
+<!--
+<h3 id="guix"><a href="https://www.gnu.org/software/guix";>GNU Guix</a></h3>
+
+<p>
+  GNU Guix is the GNU package manager.
+
+  GNU Guix provides state-of-the-art package management features such
+  as transactional upgrades and roll-backs, reproducible build
+  environments, unprivileged package management, and per-user
+  profiles. It uses low-level mechanisms from the Nix package manager,
+  but packages are defined as native Guile modules, using extensions
+  to the Scheme language—which makes it nicely hackable.
+</p>
+<p>
+  It maintains their list of ideas for GSOC in an external
+  webpage:
+  <a href="https://libreplanet.org/wiki/Group:Guix/GSoC-2023";>
+    https://libreplanet.org/wiki/Group:Guix/GSoC-2023
+  </a>
+</p>
+
+<h3 id="mes"><a href="">GNU Mes</a></h3>
+
+<p>
+  GNU Mes is a Scheme interpreter and C compiler for bootstrapping the
+  GNU System. Since version 0.22 it has again helped to halve the size
+  of opaque, uninspectable binary seeds that are currently being used
+  in the Reduced Binary Seed bootstrap of GNU Guix. The final goal is
+  to help create a full source bootstrap as part of the bootstrappable
+  builds effort for UNIX-like operating systems.
+</p>
+
+<p>
+  It maintains their list of ideas for GSOC in an external
+  webpage:
+  <a href="https://libreplanet.org/wiki/Group:Guix/GSoC-2023";>
+    https://libreplanet.org/wiki/Group:Guix/GSoC-2023
+  </a>
+</p>
+
+<h3 id="xaos"><a href="https://www.gnu.org/software/xaos";>XaoS</a></h3>
+
+<p>
+GNU XaoS is an interactive fractal zoomer. It allows the user to
+continuously zoom in or out of a fractal in a fluid, continuous
+motion. This capability makes XaoS great for exploring fractals, and
+it's fun!
+</p>
+
+<h4>Turning XaoS into a web application</h4>
+
+<p>
+  GNU XaoS is a popular real-time fractal zoomer and morpher. Its
+  version 4.0 is available since April 2020---it provides a new user
+  interface based on Qt. Qt allows applications to be compiled to run
+  in a web browser, however, some requirements must be met. See
+  <a href="https://github.com/xaos-project/XaoS/issues/151";>this</a>
+  for more information. In this project the task is to find the
+  affected parts of XaoS and change them to be able to compile for
+  running in a browser.
+</p>
+
+<h3 id="gnuastro"><a href="https://www.gnu.org/software/gnuastro";>GNU
+    Astronomy Utilities</a></h3>
+
+<p>
+  GNU Astronomy Utilities (Gnuastro) is an official GNU package consisting of 
<a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Gnuastro-programs-list.html";>various
 programs</a> and <a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Gnuastro-library.html";>library
 functions</a> for the manipulation and analysis of (astronomical) data.
+  All the programs share the same basic command-line user interface for the 
comfort of both the users and developers, some <a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Tutorials.html";>complete
 tutorials</a> are available to help getting started or obtaining a general 
view.
+  Gnuastro is written to comply fully with the GNU coding standards so it 
integrates finely with the GNU/Linux operating system.
+  This also enables astronomers to expect a fully familiar experience in the 
source code, building, installing and command-line user interaction that they 
have seen in all the other GNU software that they use.
+</p>
+
+<p>
+  Gnuastro's proposed projects for this summer-of-code are listed below.
+  More generally, you can also see the full list of <a 
href="http://savannah.gnu.org/task/?group=gnuastro";>open tasks</a> and <a 
href="https://savannah.gnu.org/bugs/?group=gnuastro";>open bugs</a> (for all 
programs/libraries) and suggest a different project for us to consider.
+  The preferred way to get in touch is through Gnuastro's "Support tracker" on 
Savannah and in particular <a 
href="https://savannah.gnu.org/support/?110195";>sr #110195</a>.
+  You can also see previous discussions there on tips for getting started.
+  In case you need to have private discussions, you can also contact the given 
email.
+</p>
+
+
+<h4>Improving Image Processing tools in GNU Astronomy Utilities</h4>
+
+<p>
+  Gnuastro's programs already contain many image processing tools for 
professional (research quality) usage.
+  However, there are still many tools that remain to be added are are 
necessary for a complete workflow.
+  For example image registration (finding the warp necessary to match images), 
non-linear warping (for example correcting optical distortions or gravitational 
lensing) or de-blending tools (for example to separate galaxies that are in one 
line of sight).
+  If you are interested in image processing, programming in C (astronomical 
datasets are large and thus need to be efficient) and in the meantime learning 
some astronomy and working with major telescope data, please get in touch.
+</p>
+
+<p>
+  <strong>Required Skills</strong>: C programming, basic knowledge of image 
processing concepts.
+  <br />
+  <strong>Contact</strong>: <a 
href="https://savannah.gnu.org/support/?110195";>sr #110195</a> or 
mohammad::at::akhlaghi.org.
+</p>
+
+<h4>Python/R/Julia API for GNU Astronomy Utilities C library</h4>
+
+<p>
+  Gnuastro is primarily written in C because astronomical datasets are large 
and thus need to be efficient.
+  Its most commonly used interface are its <a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Gnuastro-programs-list.html";>command-line
 programs</a>, but it also has an extensive set of installed <a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Gnuastro-library.html";>C/C++
 libraries</a>, which the programs also use.
+  However, many data science operations are today done in the high-level 
language environments of Python, R or Julia.
+  All three languages have low-level and well-defined interfaces for 
communicating with installed C libraries.
+  Gnuastro therefore has <a href="http://savannah.gnu.org/task/?13786";>a 
task</a> to define a low-level wrapper infra-structure which will allow easy 
usage in these higher-level languages also.
+  We welcome anyone interested in managing this task for one of these 
languages as part of GSoC.
+  This will be a wonderful chance to master any of these high-level languages 
(which are almost fully written in C themselves), while also working on 
real-world data science/analysis.
+</p>
+
+<p>
+  <strong>Skills required</strong>: C programming, C interface of Python or R 
or Julia (whichever you are better at!).
+  <br />
+  <strong>Contact</strong>: <a 
href="https://savannah.gnu.org/support/?110195";>sr #110195</a> or 
mohammad::at::akhlaghi.org.
+</p>
+
+<h3 id="taler"><a href="http://www.gnu.org/software/taler";>GNU
+    Taler</a></h3>
+
+<h4>Add GNU Taler support to Saleor</h4>
+
+<p>
+Saleor.io is an e-commerce platform. We would like to see someone
+implement support for making payments with GNU Taler for Saleor.
+</p>
+<p>
+  <strong>Contact address for interested students:</strong>
+  grothoff@gnunet.org
+</p>
+
+<h4>Add GNU Taler support to Magento</h4>
+
+<p>
+Magento.com is an e-commerce platform. We would like to see someone
+implement support for making payments with GNU Taler for Magento.
+</p>
+<p>
+  <strong>Contact address for interested students:</strong>
+  grothoff@gnunet.org
+</p>
+
+<h4>Add GNU Taler support to OpenCart</h4>
+
+<p>
+Opencart.com is an e-commerce platform. We would like to see someone
+implement support for making payments with GNU Taler for OpenCart
+</p>
+<p>
+  <strong>Contact address for interested students:</strong>
+  grothoff@gnunet.org
+</p>
+
+<h4>Add GNU Taler support to LiteCart</h4>
+
+<p>
+Litecart.net is an e-commerce platform. We would like to see someone
+implement support for making payments with GNU Taler for LiteCart
+</p>
+<p>
+  <strong>Contact address for interested students:</strong>
+  grothoff@gnunet.org
+</p>
+
+<h4>Write minimum Taler wallet for MicroPython</h4>
+
+<p>
+Micropython.org is a minimalistic implementation of Python for
+microcontrollers. We would like to see a minimalistic implementation
+of the Taler wallet for microcontrollers with MicroPython.
+</p>
+<p>
+  <strong>Contact address for interested students:</strong>
+  grothoff@gnunet.org
+</p>
+
+<h4>Standalone IndexDB backed by sqlite</h4>
+
+<p>
+IndexDB is the common database for WebExtensions in browsers. For
+browser-less deployments of the Taler wallet in NodeJS-based
+applications, we would like to see a stand-alone implementation of
+IndexDB on top of an sqlite3 database.
+</p>
+<p>
+  <strong>Contact address for interested students:</strong>
+  grothoff@gnunet.org
+</p>
+
+
+<h3 id="gnunet"><a href="http://www.gnu.org/software/gnunet";>GNUnet</a></h3>
+
+<p>
+GNUnet is an alternative network stack for building secure,
+decentralized and privacy-preserving distributed applications. Our
+goal is to replace the old insecure Internet protocol stack. Starting
+from an application for secure publication of files, it has grown to
+include all kinds of basic protocol components and applications
+towards the creation of a GNU internet.
+</p>
+
+<p>GNUnet maintains a list of ideas here:
+  <a 
href="https://stage.gnunet.org/en/gsoc.html";>https://stage.gnunet.org/en/gsoc.html</a>.</p>
+-->
+<!--
+<h3 id="poke"><a href="http://jemarch.net/poke";>GNU poke</a></h3>
+
+<p>
+GNU poke is an interactive, extensible editor for binary data. Not
+limited to editing basic entities such as bits and bytes, it provides
+a full-fledged procedural, interactive programming language designed
+to describe data structures and to operate on them.
+</p>
+
+<p>
+  GNU poke maintains a list of ideas here:
+  <a 
href="http://www.jemarch.net/poke-gsoc-2022.html";>http://www.jemarch.net/poke-gsoc-2023.html</a>
+</p>
+
+<h3 id="cobol"><a href="http://www.gnu.org/s/gnucobol";>GnuCOBOL</a></h3>
+
+<p>
+GnuCOBOL is a free software COBOL compiler. cobc translates COBOL
+source code to native executable using intermediate C, designated C
+compiler and linker.
+</p>
+
+<h4>Eclipse plugin for use with GnuCOBOL</h4>
+
+<p>
+  Many developers use Eclipse as their IDE. The possibility to use
+  its framework and plugin ecosystem is one of the reasons for this
+  and different proprietary COBOL implementations therefore provided
+  COBOL plugins. Despite of normally being proprietary and "only-for
+  customers-with-a-license" they are very tight coupled to their
+  "products".
+</p>
+<p>
+  This project is about creating a plugin for GnuCOBOL featuring:
+</p>
+<ul>
+  <li>COBOL compiler setup (used for compilation, running and
+    syntax-check)</li>
+  <li>COBOL project (pre-defined settings, compilation of outdated parts)</li>
+  <li>COBOL editor with syntax highlighting and code outline;
+    ideally supporting both fixed-form (column-based) and free-form
+    reference-format</li>
+  <li>ideally:  support for refactoring</li>
+  <li>ideally:  support for external pre-parsers with additional reserved
+    words and/or blocks</li>
+  <li>optional: code content assist</li>
+  <li>optional: code templates</li>
+  <li>optional: program templates</li>
+</ul>
+
+<p>
+  <strong>Skills required:</strong> Knowledge of Java, ideally
+  knowledge of the Eclipse plugin system.  Knowledge of COBOL and
+  possibly the GnuCOBOL package is welcome but not mandatory.
+  <br/>
+  <strong>Contact address for interested students:</strong>
+  gnucobol-dev@gnu.org
+</p>
+
+<h4>Extension of screenio interface (curses based)</h4>
+
+<p>
+  GnuCOBOL uses curses (ncurses/pdcurses) to create a portable
+  "extended" screenio.
+</p>
+<p>
+  This project is about extending the runtime parts handling this.
+</p>
+<ul>
+  <li>add support to use curses windows</li>
+  <li>improve handling to accept formatted and numeric values</li>
+  <li>save and restore screen attributes and data</li>
+  <li>optional: support for TUI creation (simple components: buttons,
+    checkboxes, option fields)</li>
+  <li>optional (extending the compiler) - code generation for
+    SCREEN SECTION extensions</li>
+</ul>
+
+<p>
+  <strong>Skills required:</strong> Knowledge of C, knowledge of the
+  curses API.  Basic knowledge of COBOL and the GnuCOBOL package along
+  with building a package from source is mandatory.
+  <br/>
+  <strong>Contact address for interested students:</strong>
+  gnucobol-dev@gnu.org
+</p>
+
+<h3 id="gnuastro"><a href="https://www.gnu.org/software/gnuastro";>GNU
+    Astronomy Utilities</a></h3>
+
+<p>
+  GNU Astronomy Utilities (Gnuastro) is an official GNU package consisting of 
<a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Gnuastro-programs-list.html";>various
 programs</a> and <a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Gnuastro-library.html";>library
 functions</a> for the manipulation and analysis of (astronomical) data.
+  All the programs share the same basic command-line user interface for the 
comfort of both the users and developers, some <a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Tutorials.html";>complete
 tutorials</a> are available to help getting started or obtaining a general 
view.
+  Gnuastro is written to comply fully with the GNU coding standards so it 
integrates finely with the GNU/Linux operating system.
+  This also enables astronomers to expect a fully familiar experience in the 
source code, building, installing and command-line user interaction that they 
have seen in all the other GNU software that they use.
+</p>
+
+<p>
+  Gnuastro's proposed projects for this summer-of-code are listed below.
+  More generally, you can also see the full list of <a 
href="http://savannah.gnu.org/task/?group=gnuastro";>open tasks</a> and <a 
href="https://savannah.gnu.org/bugs/?group=gnuastro";>open bugs</a> (for all 
programs/libraries) and suggest a different project for us to consider.
+  The preferred way to get in touch is through Gnuastro's "Support tracker" on 
Savannah and in particular <a 
href="https://savannah.gnu.org/support/?110195";>sr #110195</a>.
+  You can also see previous discussions there on tips for getting started.
+  In case you need to have private discussions, you can also contact the given 
email.
+</p>
+
+
+<h4>Improving Image Processing tools in GNU Astronomy Utilities</h4>
+
+<p>
+  Gnuastro's programs already contain many image processing tools for 
professional (research quality) usage.
+  However, there are still many tools that remain to be added are are 
necessary for a complete workflow.
+  For example image registration (finding the warp necessary to match images), 
non-linear warping (for example correcting optical distortions or gravitational 
lensing) or de-blending tools (for example to separate galaxies that are in one 
line of sight).
+  If you are interested in image processing, programming in C (astronomical 
datasets are large and thus need to be efficient) and in the meantime learning 
some astronomy and working with major telescope data, please get in touch.
+</p>
+
+<p>
+  <strong>Required Skills</strong>: C programming, basic knowledge of image 
processing concepts.
+  <br />
+  <strong>Contact</strong>: <a 
href="https://savannah.gnu.org/support/?110195";>sr #110195</a> or 
mohammad::at::akhlaghi.org.
+</p>
+
+<h4>Python/R/Julia API for GNU Astronomy Utilities C library</h4>
+
+<p>
+  Gnuastro is primarily written in C because astronomical datasets are large 
and thus need to be efficient.
+  Its most commonly used interface are its <a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Gnuastro-programs-list.html";>command-line
 programs</a>, but it also has an extensive set of installed <a 
href="https://www.gnu.org/software/gnuastro/manual/html_node/Gnuastro-library.html";>C/C++
 libraries</a>, which the programs also use.
+  However, many data science operations are today done in the high-level 
language environments of Python, R or Julia.
+  All three languages have low-level and well-defined interfaces for 
communicating with installed C libraries.
+  Gnuastro therefore has <a href="http://savannah.gnu.org/task/?13786";>a 
task</a> to define a low-level wrapper infra-structure which will allow easy 
usage in these higher-level languages also.
+  We welcome anyone interested in managing this task for one of these 
languages as part of GSoC.
+  This will be a wonderful chance to master any of these high-level languages 
(which are almost fully written in C themselves), while also working on 
real-world data science/analysis.
+</p>
+
+<p>
+  <strong>Skills required</strong>: C programming, C interface of Python or R 
or Julia (whichever you are better at!).
+  <br />
+  <strong>Contact</strong>: <a 
href="https://savannah.gnu.org/support/?110195";>sr #110195</a> or 
mohammad::at::akhlaghi.org.
+</p>
+
+<h3 id="social"><a href="https://gnusocial.network";>GNU social</a></h3>
+<p>GNU social is a social networking platform often used in <a
+href="https://blog.diogo.site/posts/what-is-the-fediverse";>federated
+social networks</a>. It is widely supported and has a large user-base
+being already used by the <a href="https://status.fsf.org/";>Free
+Software Foundation</a>.</p>
+<p>GNU social maintains a list of GSoC project suggestions on <a
+href="https://www.diogo.site/projects/GNU-social/soc/current";>https://www.diogo.site/projects/GNU-social/soc/current</a>.</p>
+
+<h3 id="lilypond"><a 
href="http://www.gnu.org/software/lilypond";>Lilypond</a></h3>
+
+<p>
+LilyPond is a music engraving program devoted to producing the
+highest-quality sheet music possible.  Users describe the music in a
+high-level text input format, which LilyPond processes to produce pdf,
+png, svg, and/or midi files.  LilyPond is written in C++ and Guile
+(the GNU project’s Scheme interpreter), with Guile also serving as
+user-level extension language.
+</p>
+<p>
+LilyPond maintains a list of GSoC project suggestions on <a 
href="http://lilypond.org/google-summer-of-code.html";>http://lilypond.org/google-summer-of-code.html</a>.
+</p>
+
+<h3 id="guix"><a href="https://www.gnu.org/software/guix";>GNU Guix</a></h3>
+
+<p>
+  GNU Guix is the GNU package manager.
+
+  GNU Guix provides state-of-the-art package management features such
+  as transactional upgrades and roll-backs, reproducible build
+  environments, unprivileged package management, and per-user
+  profiles. It uses low-level mechanisms from the Nix package manager,
+  but packages are defined as native Guile modules, using extensions
+  to the Scheme language—which makes it nicely hackable.
+</p>
+<p>
+  It maintains their list of ideas for GSOC in an external
+  webpage:
+  <a href="https://libreplanet.org/wiki/Group:Guix/GSoC-2020";>
+    https://libreplanet.org/wiki/Group:Guix/GSoC-2020
+  </a>
+</p>
+
+<h3 id="xaos"><a href="https://www.gnu.org/software/xaos";>XaoS</a></h3>
+
+<p>
+GNU XaoS is an interactive fractal zoomer. It allows the user to
+continuously zoom in or out of a fractal in a fluid, continuous
+motion. This capability makes XaoS great for exploring fractals, and
+it's fun!
+</p>
+
+<h4>Enhance export to support high quality output</h4>
+
+<p>
+  Render very large size images as TIFF files to print artworks as
+  e.g. 1 x 2 metre 400 dpi CPrints. Wide colour gamut e.g. ProFoto and
+  Adobe1998 colour profiles. Cropping/in-proportion sizing. Batch
+  output using previous files in native XaoS format. As an example
+  please see the output option in e.g. Capture One Pro.
+</p>
+<p>
+  <strong>Required skills:</strong> Good knowledge of C++ programming.
+  <br/>
+  <strong>Contact address:</strong> zoltan@geogebra.org.
+</p>
+
+<h4>Support for arbitrary precision</h4>
+
+<p>
+XaoS currently cannot support very deep zooms because the 80-bit floating
+point arithmetic used runs out of precision before too long. It should be
+possible to add arbitrary precision to XaoS using the MPFR library (
+https://www.mpfr.org/), or a different one if it is not fast enough to
+support real-time zooming. See also
+https://github.com/xaos-project/XaoS/issues/24, in particular
+https://github.com/xaos-project/XaoS/issues/24#issuecomment-482918442.
+</p>
+<p>
+  <strong>Required skills:</strong> Good knowledge of C++ programming.
+  <br/>
+  <strong>Contact address:</strong> zoltan@geogebra.org.
+</p>
+
+<h3 id="wget"><a href="http://www.gnu.org/software/wget";>GNU Wget</a></h3>
+
+<p>GNU Wget is a free software package for retrieving files using
+HTTP, HTTPS and FTP, the most widely-used Internet protocols. It is a
+non-interactive commandline tool, so it may easily be called from
+scripts, cron jobs, terminals without X-Windows support, etc. We are
+working on Wget2 as the next generation of Wget, Wget2 is a full
+rewrite which adds support for multithreading and HTTP/2.0.
+
+GNU Wget2 maintains its list of ideas and other GSoC related information on 
their GitLab Wiki: 
+<a href="https://gitlab.com/darnir/wget2/wikis/wget-gsoc";>GNU Wget2 GSoC 
Information</a>
+</p>
+
+<h3 id="libmicrohttpd"><a 
href="http://www.gnu.org/software/libmicrohttpd";>libmicrohttpd</a></h3>
+
+<h4>Python binding for libmicrohttpd</h4>
+
+<p>
+  libmicrohttpd is a C library implementing an HTTP 1.x Web
+  server. The objective of the project will be to make libmicrohttpd's
+  C API easily accessible from Python by writing an equivalent nice
+  Python wrapper.
+</p>
+
+<p>
+  <strong>Skills required:</strong> Python, Python C-bindings, basic C
+  knowledge
+  <br/>
+  <strong>Contact address:</strong> libmicrohttpd@gnu.org
+</p>
+
+<h3 id="gnucap"><a href="http://gnucap.org";>GNU Circuit Analysis 
Package</a></h3>
+
+<p>
+Gnucap is the Gnu Circuit Analysis Package.
+</p>
+<p>
+The primary component is a general purpose circuit simulator. It
+performs nonlinear dc and transient analyses, fourier analysis, and ac
+analysis. Spice compatible models for the MOSFET (level 1-8), BJT, and
+diode are included in this release.
+</p>
+
+<p>Gnucap maintains their list of ideas for GSOC in an external
+  webpage: <a href="http://gnucap.org/dokuwiki/doku.php/gnucap:projects";>
+                    http://gnucap.org/dokuwiki/doku.php/gnucap:projects</a>.
+</p>
+
+<h3 id="texmacs"><a href="http://www.gnu.org/s/texmacs";>GNU TeXmacs</a></h3>
+
+<p>
+GNU TeXmacs is a free scientific editing platform designed to create
+beautiful technical documents.
+</p>
+
+<h4>Converters (Easy)</h4>
+
+<h5>Descriptions</h5>
+
+<ul>
+  <li>Between TeXmacs and OpenOffice/LibreOffice/M$Office.</li>
+  <li>Extend the HTML converters to HTML 5.</li>
+  <li>Between TeXmacs and Markdown(CommonMark)</li>
+</ul>
+
+<h5>Outcomes</h5>
+
+<ul>
+  <li>Improve the converters for GNU TeXmacs</li>
+</ul>
+
+<h5>Skills</h5>
+
+<p>C++ and Scheme</p>
+
+<h4>Further improvement of bibliographic tools (Medium)</h4>
+
+<h5>Descriptions</h5>
+
+<ul>
+  <li>Direct searching of bib entries on the web from within
+    TeXmacs.</li>
+  <li>Automatic linking of authors to homepages, bib entries to PDFs,
+    etc.</li>
+  <li>Preview of link targets in help balloons.</li>
+  <li>Connection with Zotero</li>
+</ul>
+
+<h5>Outcomes</h5>
+
+<p>
+  Improve GNU TeXmacs for academic purpose
+</p>
+
+<h5>Skills</h5>
+
+<p>
+  C++ and Scheme
+</p>
+
+<h4>A Jupyter plugin (Medium)</h4>
+
+<h5>Descriptions</h5>
+
+<ul>
+  <li>Improve the existing python-implemented plugins in TeXmacs</li>
+  <li>Adapt the Jupyter protocol to the TeXmacs plugin protocol</li>
+  <li>Converters from/to the Jupyter notebook format</li>
+</ul>
+
+<h5>Outcomes</h5>
+
+<p>
+  Enrich the TeXmacs plugin ecosystem on top of Jupyter
+</p>
+
+<h5>Skills</h5>
+
+<p>
+  C++, Scheme and Python
+</p>
+
+<p>
+  Contact address for interested students: texmacs-dev@gnu.org
+</p>
+
+<h3 id="emacs"><a href="http://www.gnu.org/s/emacs";>GNU Emacs</a></h3>
+
+<h4>Improving Traceback Information in ELisp Bytecode</h4>
+
+<p>The GNU Emacs Lisp Bytecode interpreter plays an important role in GNU
+   Emacs, possibly moreso than say javascript is to Firefox. The bytecode
+   compilation system and runtime system which go back to the earliest
+  days of Emacs could use improvement.
+</p>
+
+<p>
+Currently, when there is an error in bytecode, the bytecode offset
+where the error occurs is not recorded. Currently this information is
+in a register containing a memory pointer rather than a usable
+bytecode offset.
+</p>
+
+<p>
+     Therefore, the first task would be to get the bytecode offset make that
+     available and added to the call stack.
+</p>
+<p>
+     After this, there are several possibilities for turning the
+     offset back into a source-code location, or failing that,
+     displaying the location next to a disassembly of the bytecode.
+     Getting a source-code location from a bytecode object will most
+     likely involve chainge the bytecode compiler to save this
+     information and there are several possibilites here.
+</p>
+
+<p>Links to resources:
+</p>
+  <ol>
+    <li>https://lists.gnu.org/archive/html/emacs-devel/2020-03/msg00442.html
+    </li>
+    <li>http://rocky.github.io/elisp-bytecode.pdf</li>
+  </ol>
+
+<p><strong>Required skills:</strong> Proficiency in C and Emacs
+  Lisp<br/>
+  <strong>Contact points:</strong> monnier@iro.umontreal.ca (primary),
+rocky@gnu.org (secondary)
+</p>
+
+-->
+
+<!--end of projects-->
+
+  <h3>Other links:</h3>
+    <a href="https://summerofcode.withgoogle.com";>Google SoC Page</a>.
+
+  <!--
+<li>Several GNU packages register separately in the Google Summer of
+Code.  These include:
+<a href="http://gcc.gnu.org/wiki/SummerOfCode";>GCC</a>,
+<a href="http://code.google.com/soc/gimp/about.html";>GIMP</a>,
+<a href="http://code.google.com/soc/gnome/about.html";>GNOME</a>,
+<a href="http://code.google.com/soc/gnumeric/about.html";>Gnumeric</a>, -->
+
+</div><!-- for id="content", starts in the include above -->
+<!--#include virtual="/server/footer.html" -->
+<div id="footer">
+
+<p>Return to the <a href="/home.html">GNU Project's home page</a>.</p>
+
+<p>Please send FSF &amp; GNU inquiries to <a
+href="mailto:gnu@gnu.org";><em>gnu@gnu.org</em></a>.  There are also <a
+href="/contact/">other ways to contact</a> the FSF.  <br
+/> Please send broken links and other corrections (or suggestions) to
+<a 
href="mailto:summer-of-code@gnu.org";><em>summer-of-code@gnu.org</em></a>.</p>
+
+<p>
+Copyright &copy; 2011-2020 Free Software Foundation, Inc., 51 Franklin St.,
+Fifth Floor, Boston, MA  02110,  USA<br /> Verbatim copying and
+distribution of this entire article is permitted worldwide, without
+royalty, in any medium, provided this notice is preserved.
+</p>
+
+<p>
+Updated:
+<!-- timestamp start -->
+$Date: 2023/02/08 15:01:36 $
+<!-- timestamp end -->
+</p>
+
+</div>
+</div>
+</body>
+</html>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]