Summer of Code - Getting Started: Difference between revisions

Jump to navigation Jump to search
Removed "Command line suggestion feature" project because this was done in GSoC 2018 (https://sudeepam.blogspot.com/)
(Removed "Command line suggestion feature" project because this was done in GSoC 2018 (https://sudeepam.blogspot.com/))
(5 intermediate revisions by 3 users not shown)
Line 11: Line 11:
* '''Do not wait for us to tell you what to do'''
* '''Do not wait for us to tell you what to do'''
*: You should be doing something that interests you, and should not need us to tell you what to do.  Similarly, you shouldn't ask us what to do either.
*: You should be doing something that interests you, and should not need us to tell you what to do.  Similarly, you shouldn't ask us what to do either.
*:* When you email the list and mentors, do not write it to say on what project you're interested. Be specific about your questions and clear on the email subject. For example, do not write an email with the subject "GSoC student interested in the ND images projects".  Such email is likely be ignored.  Instead, show you are already working on the topic, and email "Problem implementing morphological operators with bitpacked ND images".
*:* When you email the list and mentors, do not write it to say in what project you're interested. Be specific about your questions and clear on the email subject. For example, do not write an email with the subject "GSoC student interested in the ND images projects".  Such email is likely be ignored.  Instead, show you are already working on the topic, and email "Problem implementing morphological operators with bitpacked ND images".
*:* It is good to ask advice on how to solve something you can't but you must show some work done.  Remember, we are mentors and not your boss.  Read [http://www.catb.org/esr/faqs/smart-questions.html How to ask questions the smart way]:
*:* It is good to ask advice on how to solve something you can't but you must show some work done.  Remember, we are mentors and not your boss.  Read [http://www.catb.org/esr/faqs/smart-questions.html How to ask questions the smart way]:
*:*: <blockquote cite="http://www.catb.org/esr/faqs/smart-questions.html">''Prepare your question. Think it through. Hasty-sounding questions get hasty answers, or none at all. The more you do to demonstrate that having put thought and effort into solving your problem before seeking help, the more likely you are to actually get help.''</blockquote>
*:*: <blockquote cite="http://www.catb.org/esr/faqs/smart-questions.html">''Prepare your question. Think it through. Hasty-sounding questions get hasty answers, or none at all. The more you do to demonstrate that having put thought and effort into solving your problem before seeking help, the more likely you are to actually get help.''</blockquote>
*:* It can be difficult at the beginning to think on something to do.  This is nature of free and open source software development.  You will need to break the mental barrier that prevents you from thinking on what can be done.  Once you do that, you will have no lack of ideas for what to do next.
*:* It can be difficult at the beginning to think on something to do.  This is nature of free and open source software development.  You will need to break the mental barrier that prevents you from thinking on what can be done.  Once you do that, you will have no lack of ideas for what to do next.
*:* Use Octave.  Eventually you will come accross somethings that does not work the way you like.  Fix that.  Or you will come accross a missing function.  Implement it.  It may be a difficult problem (they usually are) but while solving that problem you may find other missing functions ()Implemenent and contribute those to Octave.
*:* Use Octave.  Eventually you will come across something that does not work the way you like.  Fix that.  Or you will come across a missing function.  Implement it.  It may be a hard problem (they usually are). While solving that problem, you may find other missing capabilities or smaller bug fixesImplement and contribute those to Octave.
*:* Take a look at the [[Short projects]] for something that may be simple to start with.
*:* Take a look at the [[Short projects]] for something that may be simple to start with.
==  Find Something That Interests You ==  
==  Find Something That Interests You ==  
*: It's '''critical''' that you '''find a project that excites you'''.  You'll be spending most of the summer working on it (we expect you to treat the SoC as a full-time job).
*: It's '''critical''' that you '''find a project that excites you'''.  You'll be spending most of the summer working on it (we expect you to treat the SoC as a full-time job).
Line 97: Line 98:
|-
|-
! <br />!! !! !! !! !! !!
! <br />!! !! !! !! !! !!
|-
| [[Summer_of_Code_Project_Ideas#Make_specfuns_special_again | Make specfuns special again]] || Marco Caliari || Colin Macdonald || Numerical || No || Medium || [https://gsocspecfun.blogspot.de/ GSoC 2017]
|-
|-
| [[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_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
Line 122: Line 121:
| [[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_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_Project_Ideas#Jupyter_Integration | Jupyter integration]] || Mike Miller || Colin B. Macdonald || Infrastructure ||  Yes || Medium || Never
| [[Summer_of_Code_Project_Ideas#Jupyter_Integration | Jupyter integration]] || Mike Miller || Colin B. Macdonald, Ankit Raj || Infrastructure ||  Yes || Medium || Never
|-
| [[Summer_of_Code_Project_Ideas#Chebfun_in_Octave | Chebfun in Octave]] || Colin B. Macdonald || [[User:KaKiLa|KaKiLa]], needs core-Octave mentor/comentor || Infrastructure, Numerical || Yes  || Hard || Never
|-
|-
| [[Summer_of_Code_Project_Ideas#Octave_code_sharing | Octave code sharing]] || [[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]], Ankit Raj, needs core-Octave mentor/comentor || Infrastructure, Numerical || Yes  || Hard || Never
|-
|-
| [[Summer_of_Code_Project_Ideas#GUI Variable Editor and Property Inspector | GUI Property Inspector]] || ? ||  || GUI || Yes  || Medium || Never
| [[Summer_of_Code_Project_Ideas#GUI Variable Editor and Property Inspector | GUI Property Inspector]] || ? ||  || GUI || Yes  || Medium || Never
Line 138: Line 135:


These projects involve implementing certain mathematical functions, primarily in core Octave.
These projects involve implementing certain mathematical functions, primarily in core Octave.
=== Make specfuns special again ===
Traditionally, problem solving environments like Octave provide simple interfaces to numerical linear algebra, special function evaluation, root finding, and other tools.  Special functions (such as Bessel functions, exponential integrals, LambertW, etc) are expected by users to "just work".  But many of Octave's special functions could be improved to improve their numerical accuracy.  Generally a user might expect these to be accurate to full 15 digits.  Software testing is important to Octave; this project would improve the tests of many special functions, in particular by comparing the output with slow-but-accurate symbolic computations.
State: some bugs include [https://savannah.gnu.org/bugs/?48307 #48307] (sinc), [https://savannah.gnu.org/bugs/?47738  #47738] (expint), [https://savannah.gnu.org/bugs/?47800  #47800] (gammainc), [https://savannah.gnu.org/bugs/?48036 #48036] (gammaincinv) [https://savannah.gnu.org/bugs/index.php?48316 #48316] (besselj) ''TODO: add others?''  The unmaintained specfun pkg had some poor implementations (e.g., divergence for large x, see [https://github.com/cbm755/octsympy/issues/416].).  See also the Symbolic functions in `@double`: these probably should have native double implementations.
* '''Required skills'''
: Octave m-file programming, some familiarity with Approximation Theory (a branch of mathematics).
* '''Difficulty'''
: Medium (mathematics needed, but on the other hand, perhaps little or no C++).
* '''Potential mentors'''
: Marco Caliari, Colin Macdonald, others?
How to get started: pick a special function, see if it has tests: contribute a patch that adds more tests, e.g., comparing its values to symbolic computations or other highly accurate solutions


=== ode15{i,s} : Matlab Compatible DAE solvers ===
=== ode15{i,s} : Matlab Compatible DAE solvers ===
Line 166: Line 148:
[http://hg.savannah.gnu.org/hgweb/octave/file/4890b1c4a6bd/scripts/ode/ode15i.m ode15i.m] and
[http://hg.savannah.gnu.org/hgweb/octave/file/4890b1c4a6bd/scripts/ode/ode15i.m ode15i.m] and
[http://hg.savannah.gnu.org/hgweb/octave/file/4890b1c4a6bd/scripts/ode/ode15s.m ode15s.m].
[http://hg.savannah.gnu.org/hgweb/octave/file/4890b1c4a6bd/scripts/ode/ode15s.m ode15s.m].
The list of outsanding tracker tickets concerning this implementation can be found  
The list of outstanding tracker tickets concerning this implementation can be found  
[https://savannah.gnu.org/search/?Search=Search&words=ode15&type_of_search=bugs&only_group_id=1925&exact=1&max_rows=25#options here]
[https://savannah.gnu.org/search/?Search=Search&words=ode15&type_of_search=bugs&only_group_id=1925&exact=1&max_rows=25#options here]


Line 182: Line 164:
to a possible project plan would be improving documentation and tests in odepkg and removing  
to a possible project plan would be improving documentation and tests in odepkg and removing  
overlaps with the documentation in core Octave.
overlaps with the documentation in core Octave.
   
   
* '''Required skills'''
* '''Required skills'''
Line 394: Line 375:
* '''Mentor'''
* '''Mentor'''
: [[User:KaKiLa|KaKiLa]], Carnë Draug, Carlo de Falco, Sebastian Schöps
: [[User:KaKiLa|KaKiLa]], Carnë Draug, Carlo de Falco, Sebastian Schöps
=== Command line suggestion feature ===
Currently Octave has no mechanism for suggesting corrections to typographic errors on the command line. An autocomplete/suggestion function is provided (using the double-TAB shortcut), but recent discussions have indicated a desire for a more proactive measure to catch user error.  Potential applicants are referred to bug {{bug|46881}} regarding the usage of grey vs. gray.
Suggested improvements are:
* provide one or more suggested corrections to the user when a command line entry produces an error.
* recognition and suggested correction for apparent syntax errors
* function suggestion(s) when a 'close' match is found (close remains to be defined)
* multiple suggestions if more than one option seems likely, along with a user-friendly method of selecting the appropriate choice.
* user selectable option to disable and/or customize the suggestion behavior
* correct operation, or graceful degradation, whether Octave is run in GUI or command-line mode.
As mentioned in the bug {{bug|46881}} discussion, this project has little-to-no relation to m-code compatibility. As such, emulation of the behavior of other software is not required, nor even necessarily desired. Octave is free to implement as simple or complex a solution to this feature request as is necessary to provide the best experience to the user. There may be tools, features, or code from other license-compatible projects that can be of use here, and the applicant would be encouraged to identify and leverage such resources as appropriate.
* '''Minimum requirements'''
: TBD
* '''Difficulty'''
: Easy to Medium.
* '''Mentor'''
: Undetermined
=== Octave code sharing ===
Recently, on the [[OctConf_2017]] a [https://rawgit.com/siko1056/Octconf2017/master/octconf2017-publish-ohlhus-slides.pdf talk] about uploading [https://www.gnu.org/software/octave/doc/interpreter/XREFpublish.html published Octave code] to a MediaWiki (like this one) as an easy way to share code was given. With the talk, a [https://github.com/siko1056/OctConf2017 repository] containing example code for the MediaWiki upload is given. This might continue the idea of an unfinished [[Agora]] code sharing website, but one is not restricted to fully stay with the proposed approach. Another, but more ambitious idea is for example [http://central.scipy.org/ Scipy Central] - a website for Scipy code sharing. Their [https://github.com/scipy/SciPyCentral Code] is released under a BSD license.
* '''Minimum requirements'''
: Ability to read and write Octave code, some familiarity with C++ ([https://curl.haxx.se libcurl]), web development (GET/POST/FORM data, cookies), and [https://www.mediawiki.org/wiki/MediaWiki MediaWiki].
* '''Difficulty'''
: Medium.
* '''Mentor'''
: [[User:Siko1056|Kai T. Ohlhus]]


=== SPQR Interface ===
=== SPQR Interface ===
281

edits

Navigation menu