Summer of Code - Getting Started: Difference between revisions

Jump to navigation Jump to search
(8 intermediate revisions by the same user not shown)
Line 98: Line 98:
! <br />!! !! !! !! !! !!
! <br />!! !! !! !! !! !!
|-
|-
| [[Summer_of_Code_Project_Ideas#ode15s_:_Matlab_Compatible_DAE_solver | ode15{i,s} : Matlab Compatible DAE solvers]] || Carlo de Falco || Francesco Faccio, Marco Caliari, Jacopo Corno, Sebastian Schöps || Numerical || No  || Medium || GSoC 2016
| [[Summer of Code - Getting Started#ode15.7Bi.2Cs.7D_:_Matlab_Compatible_DAE_solvers | ode15{i,s} : Matlab Compatible DAE solvers]] || Carlo de Falco || Francesco Faccio, Marco Caliari, Jacopo Corno, Sebastian Schöps || Numerical || No  || Medium || GSoC 2016
|-
|-
| [[Summer_of_Code_Project_Ideas#Improve_logm.2C_sqrtm.2C_funm | Improve logm, sqrtm, funm]] || ? || Marco Caliari, Mudit Sharma || Numerical || [https://github.com/RickOne16/matrix No]  || Hard || Independent devs 2016
| [[Summer of Code - Getting Started#Improve_logm.2C_sqrtm.2C_funm | Improve logm, sqrtm, funm]] || ? || Marco Caliari, Mudit Sharma || Numerical || [https://github.com/RickOne16/matrix No]  || Hard || Independent devs 2016
|-
|-
| [[Summer_of_Code_Project_Ideas#Improve_iterative_methods_for_sparse_linear_systems | Improve iterative methods for sparse linear systems]] || Marco Caliari || Carlo de Falco || Numerical || No  || Hard || SOCIS 2016
| [[Summer of Code - Getting Started#Improve_iterative_methods_for_sparse_linear_systems | Improve iterative methods for sparse linear systems]] || Marco Caliari || Carlo de Falco || Numerical || No  || Hard || SOCIS 2016
|-
|-
| [[Summer_of_Code_Project_Ideas#EPA_hydrology_software_suite | EPA hydrology software suite]] || [[User:KaKiLa| KaKiLa]] || ? || Octave Forge || Yes || Medium || Never
| [[Summer of Code - Getting Started#EPA_hydrology_software_suite | EPA hydrology software suite]] || [[User:KaKiLa| KaKiLa]] || ? || Octave Forge || Yes || Medium || Never
|-
|-
| [[Summer_of_Code_Project_Ideas#FullSWOF overland flow simulator | FullSWOF overland flow simulator]] || [[User:KaKiLa| KaKiLa]] || ? || Octave Forge || Yes || Medium || Never
| [[Summer of Code - Getting Started#FullSWOF overland flow simulator | FullSWOF overland flow simulator]] || [[User:KaKiLa| KaKiLa]] || ? || Octave Forge || Yes || Medium || Never
|-
|-
| [[Summer_of_Code_Project_Ideas#TISEAN_package | TISEAN: Nonlinear Time Series Analysis]] || [[User:KaKiLa|KaKiLa]] || ? || Octave Forge || [[TISEAN_package | No]] || Medium || GSoC 2015
| [[Summer of Code - Getting Started#TISEAN_package | TISEAN: Nonlinear Time Series Analysis]] || [[User:KaKiLa|KaKiLa]] || ? || Octave Forge || [[TISEAN_package | No]] || Medium || GSoC 2015
|-
|-
| [[Summer_of_Code_Project_Ideas#Octave_Package_management | Octave Package management]] || Sebastian Schöps || [[User:KaKiLa|KaKiLa]], Carnë Draug, Carlo de Falco || Infrastructure || Yes  || Medium || Never
| [[Summer of Code - Getting Started#Octave_Package_management | Octave Package management]] || Sebastian Schöps || [[User:KaKiLa|KaKiLa]], Carnë Draug, Carlo de Falco || Infrastructure || Yes  || Medium || Never
|-
|-
| [[Summer_of_Code_Project_Ideas#Symbolic_package | Symbolic package]] || Colin B. Macdonald || Mike Miller, Abhinav Tripathi || Octave Forge || [https://github.com/cbm755/octsympy Octsympy]  || Medium || GSoC 2016
| [[Summer of Code - Getting Started#Symbolic_package | Symbolic package]] || Colin B. Macdonald || Mike Miller, Abhinav Tripathi || Octave Forge || [https://github.com/cbm755/octsympy Octsympy]  || Medium || GSoC 2016
|-
|-
| [[Summer_of_Code_Project_Ideas#OCS | OCS package]] || Sebastian Schöps || Sebastian Schöps || Octave Forge, Numerical || Yes || Easy || Never
| [[Summer of Code - Getting Started#OCS | OCS package]] || Sebastian Schöps || Sebastian Schöps || Octave Forge, Numerical || Yes || Easy || Never
|-
|-
| [[Summer_of_Code_Project_Ideas#Using_Python_within_Octave | Pytave project]] || Mike Miller || Colin B. Macdonald, Abhinav Tripathi || Infrastructure || No  || Medium || some in GSoC 2016
| [[Summer of Code - Getting Started#Using_Python_within_Octave | Pytave project]] || Mike Miller || Colin B. Macdonald, Abhinav Tripathi || Infrastructure || No  || Medium || some in GSoC 2016
|-
|-
| [[Summer_of_Code_Project_Ideas#Jupyter_Integration | Jupyter integration]] || Mike Miller || Colin B. Macdonald || Infrastructure ||  Yes || Medium || Never
| [[Summer of Code - Getting Started#JSON_encoding.2Fdecoding | JSON encoding/decoding]] || [[User:Siko1056|Kai T. Ohlhus]] || ? || Infrastructure || Yes || Medium || Never
|-
|-
| [[Summer_of_Code_Project_Ideas#Chebfun_in_Octave | Chebfun in Octave]] || Colin B. Macdonald || [[User:KaKiLa|KaKiLa]] || Infrastructure, Numerical || Yes || Hard || Never
| [[Summer of Code - Getting Started#Jupyter_Notebook_Integration | Jupyter Notebook Integration]] || Mike Miller || Colin B. Macdonald, [[User:Siko1056|Kai T. Ohlhus]] || Infrastructure || Yes || Medium || Never
|-
|-
| [[Summer_of_Code_Project_Ideas#PolarAxes and Plotting Improvements | PolarAxes and Plotting Improvements ]] || ? || Rik || Graphics || Yes  || Medium || Never
| [[Summer of Code - Getting Started#Chebfun_in_Octave | Chebfun in Octave]] || Colin B. Macdonald || [[User:KaKiLa|KaKiLa]] || Infrastructure, Numerical || Yes  || Hard || Never
|-
| [[Summer of Code - Getting Started#PolarAxes and Plotting Improvements | PolarAxes and Plotting Improvements ]] || ? || Rik || Graphics || Yes  || Medium || Never
|}
|}


Line 306: Line 308:
== Infrastructure ==
== Infrastructure ==


=== Jupyter Integration ===
=== JSON encoding/decoding ===
 
[https://en.wikipedia.org/wiki/JSON JavaScript Object Notation], in short JSON, is a very common human readable and structured data format.  Unfortunately, GNU Octave still lacks of builtin support of that data format.  Having JSON support, Octave can improve for example it's web service functions, which often exchange JSON data these days.  Another interesting applicatoin is described in another Octave GSoC project, see [[Summer of Code - Getting Started#Jupyter_Integration | Jupyter integration]].
 
In bug {{bug|53100}} a vivid discussion about proper JSON support took place.  As JSON is a highly demanded feature for Octave, there are already several attempts to fill the gap:
 
* [https://github.com/fangq/jsonlab jsonlab] (M-file implementation, probably slow for large JSON files)
* [https://www.artefact.tk/software/matlab/jsonio/ JSONio] (C MEX wrapper around [https://github.com/zserge/jsmn jsmn])
* [https://github.com/Andy1978/octave-rapidjson octave-rapidjson] (C++ Octave wrapper around [https://rapidjson.org/ rapidjson])
* [https://github.com/apjanke/octave-jsonstuff octave-jsonstuff] (C++ Octave wrapper around [https://github.com/open-source-parsers/jsoncpp jsoncpp])
 
For different reasons, none of them can be directly merged into Octave core yet.  Thus there is still lots of work to do.  The goal of this project is to evaluate (and to cherry pick from) the implementations above, to create Matlab compatible [https://www.mathworks.com/help/matlab/ref/jsonencode.html jsonencode] and [https://www.mathworks.com/help/matlab/ref/jsondecode.html jsondecode] functions.  This involves proper documentation of the work and unit tests to ensure the correctness of the implementation.


[http://jupyter.org Jupyter Notebook] is a web-based worksheet interface for computing. There is a [https://github.com/Calysto/octave_kernel Octave kernel for Jupyter].  This project seeks to improve that kernel to make Octave a first-class experience within the Jupyter Notebook.
* '''Minimum requirements'''
: Good Octave and C/C++ programming knowledge.  Ability to make use of C/C++ libraries.
* '''Difficulty'''
: Medium.
* '''Mentor'''
: [[User:Siko1056|Kai T. Ohlhus]]


=== Jupyter Notebook Integration ===
[http://jupyter.org Jupyter Notebook] is a web-based worksheet interface for computing.  There is a [https://github.com/Calysto/octave_kernel Octave kernel for Jupyter].  This project seeks in first place to improve that kernel to make Octave a first-class experience within the Jupyter Notebook.
In general the [https://nbformat.readthedocs.io/en/latest/ Jupyter Notebook Format] is a plain JSON document.  In combination with another Octave GSoC project (see [[Summer of Code - Getting Started#JSON_encoding.2Fdecoding | JSON encoding/decoding]]), a second valuable outcome was that Octave can run (and fill) those Jupyter Notebooks on it's own.  This would enable Jupyter Notebook users to evaluate long running Octave Notebooks on a computing server without permanent browser connection, which is [https://github.com/jupyter/notebook/issues/1647 still a pending issue].
* '''Minimum requirements'''
: Good Octave and Python programming knowledge.
* '''Difficulty'''
: Medium.
* '''Mentors'''
* '''Mentors'''
: Colin B. Macdonald, Mike Miller, others?
: Colin B. Macdonald, Mike Miller, [[User:Siko1056|Kai T. Ohlhus]]
 


=== Using Python within Octave ===
=== Using Python within Octave ===

Navigation menu