[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 & 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 © 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>
- www/software/soc-projects ideas-2023.html,
Jason Self <=