Welcome to the Fedora Scientific 29 Guide¶
These pages aim to help you learn more about using the software shipped with Fedora Scientific. These documentation should be only considered applicable for Fedora 29 and may not work exactly as mentioned on other Fedora releases. Please file a issue if you find any error.
Contents¶
What is Fedora Scientific?¶
Fedora Scientific is part of Fedora labs. It is targeted towards new and existing Linux users using Linux for their scientific computing. Such users would include students and researchers whose work involves numerical experiments, preparing their results, writing research reports and presenting them. Fedora Scientific aims to be useful in all phases of the research pipeline.
The advantage of using Fedora Scientific is that you do not have to install the packages which you always need every time you install Linux. They are already available for you when you install Fedora Scientific.
What is included?¶
Fedora Scientific includes the most popular numerical tools (GNU Octave, Sage, Scilab, and others) and libraries and programming support for for C/C++, Java, Python (including IPython) and R. Plotting tools such as gnuplot and tools for creating graphics such as Inkscape are included. You can also create LaTex documents, including creating presentations using Beamer.
Installation¶
The Scientific lab comes in two variants. A Live Image with KDE and Vagrant box. Please refer to the Download page.
Here is a walk through video explaining a very basic installation of Fedora Scientific in a virtual machine.
Todo
Installation video tutorial
Customisation¶
If you are not a fan of KDE, you can install the desktop environment
of your choice using Fedora’s package manager. For example, to install
the GNOME desktop environment, use the command, sudo yum group
install Gnome desktop
.
Next¶
The rest of this guide will help you learn about all the various software tools and libraries that are available in Fedora Scientific. Mostly, they will be links to resources where you can learn more about them, but occasionally you may find tutorials and howtos. Hopefully, the latter will grow over time.
Tools, editors and IDEs¶
Fedora Scientific includes the popular numerical computing tools - GNU Octave and Scilab. Besides these, Maxima - a computer algebra system is also included. To write programs, you need a powerful text editor. Vim and Emacs are both included. If you are a programmer who prefers to use an Integrated Development Environment (IDE), Eclipse IDE is included as well.
GNU Octave¶
GNU Octave is a high level programming language and numerical computing environment. It is mostly compatible with MATLAB. Hence, if you are looking for a MATLAB alternative on Fedora Scientific, GNU Octave may be the place to start.
The GNU Octave manual is here with a PDF version also available. Other ways to get help are mentioned here.
Scilab¶
Note
scilab is not included in Fedora 28, you can however install it
using: dnf -y install scilab
.
Scilab combines a high level programming language and a numerical computing environment. If you have prior experience with MATLAB and are looking for something similar, Scilab is worth looking into.
Links to the official documentation and tutorials are available here. Ways to engage with the Scilab community are mentioned here.
Maxima¶
Maxima is a computer algebra system. The official documentation for Maxima is here and the mailing lists are listed here.
Emacs and Vim¶
Emacs and Vim are both powerful editors supporting most programming languages known today. Besides, they also have support for LaTex editing which you can use instead of dedicated LaTex editors such as Kile. If you are already familiar with one of these editors, the official documentation are good places to refer to learn more and are linked from the official project page.
Eclipse¶
Perhaps, most popular with Java programmers, the Eclipse IDE also supports C/C++ and Python programming (among others). On Fedora Scientific, you can use Eclipse for C, C++, Java and Python projects.
The official documentaion for Eclipse 4.3 is here.
C programming¶
Fedora Scientific includes the gcc
C compiler. The manual for the
GNU C library is available here.
GNU Scientific Library¶
The GNU Scientific Library is a C/C++ library providing a extensive collection of mathematical routines.
A mailing list for seeking help is also available.
Parallel and Distributed Computing¶
openmpi¶
openmpi is an open source implementation of the Message Passing Standard (MPI-2). The official documentation is available here and some of the ways of getting help is listed on this page.
C++ programming¶
Fedora Scientific includes the g++
C++ compiler. The manual for
the GNU C++ library is available here.
R programming¶
Fedora Scientific includes R - a software environment for statistical computing. The R manuals are a good place to get started as well as extensive documentaion on R. The R-help is a mailing list which can be used to seek help on R.
rkward - a GUI for R is also installed.
Note
rkward is not included in Fedora 28, you can however install it
using: dnf -y install rkward
.
R development in Jupyter¶
Using IRkernel, you can run your R code in Jupyter notebooks. First, you will have to install the czmq-devel
package using dnf -y install czmq-devel
from the terminal.
Then start the R
interactive shell from the terminal ($R
) and as per the install instructions, do:
> install.packages(c('rzmq','repr','IRkernel','IRdisplay'),
repos = c('http://irkernel.github.io/', getOption('repos')),
type = 'source')
Once that completes, run the following:
> IRkernel::installspec()
Now, start the Jupyter notebook server using ipython3 notebook
and you will be able to select the R
kernel.
Java programming¶
Fedora Scientific includes the Apache Commons Mathematics Library. This library includes a number of mathematical and statistics utilities.
The user guide is a good place to get started if you are not familiar with it. Mailing lists for the project are listed here.
Julia programming¶
Fedora Scientific includes the Julia language. The official documentation is a good place to start looking into Julia. There are a number of other resources listed on the learning page.
The community page lists the various mailing lists.
Julia development in Jupyter¶
Using IJulia.jl, you can program in Julia in Jupyter notebooks. Here is how you can install IJulia:
Once that completes, run the following:
$ julia
> using IJulia
> notebook()
In addition, if you are curious, you can look into using Juno for Julia programming.
LaTeX¶
Fedora Scientific includes the complete toolchain needed for creating documents using LaTeX. Besides using text editors such as Emacs or Vim, users also have the option of using Kile - an integrated LaTeX Environment. The LaTeX package, beamer is also included to assist in creating presentations with LaTeX.
Utilities such as hevea and bibtex2html are also included.
Graphics, Plotting and Data Visualization¶
gnuplot¶
gnuplot is a command line driven utility for creating 2-D and 3-D graphs. The official documentation is available here. The brief tutorial here may also be a good starting point.
The user mailing list is linked from the Help page.
XFig¶
Besides creating drawings in XFig, one way I find it really useful is in using it to process exported graphs from gnuplot. Plots created in gnuplot can be exported in a format called the fig format (among others). Once exported in this format, you can then open it in XFig, make any changes to it (including using LaTeX formulas) and export it to one of the supported formats.
Inkscape¶
Inkscape is a feature rich vector image creation tool. There are a number of tutorials for getting started and various mailing lists for seeking help and discussions are listed here.
dia¶
Dia can be used to create diagrams and supports exporting to a number of other formats. A mailing list is available here.
GGobi¶
GGobi is a visualization program for exploring high-dimensional data. Various resources for learning GGobi are listed here.
A mailing list is available for seeking help.
Mayavi¶
Mayavi is a software for 3-D data visualization. Documentation for getting started with Mayavi is available here.
Others¶
The GNU image manipulation program and g3data are other software available.
Version control¶
Fedora Scientific includes several popular version control software.
git¶
Pro Git by Scott Chacon is a freely available online book that should get you started with Git (in case you are not familiar with it) and also be a handy reference after you are familiar with the basics.
Other documentation including the man pages are listed here.
The Git user mailing list is an active community where you can ask your queries if you get stuck.
Mercurial¶
Learning Mercurial in Workflows is a good starting point if you are not familiar with Mercurial. The page also links to a tutorial and other resources for learning more about it.
The user mailing list is here.
Subversion¶
Rapid SVN - a GUI front-end for the Subversion version control system is included. The documentation here should be a good starting point in case you are not familiar with it.
A user forum is available for seeking help.
Miscellaneous¶
Fedora Scientific includes the following miscellaneous software.
Bibliography¶
BibTool is installed to help you in manipulating BibTex data bases. To learn more about its features, please visit the project’s homepage.
Document arrangement¶
pdfshuffler - a tool for rearranging and modifying PDF files is available.
Screenshot taking software¶
shutter a screenshot taking tool is installed for taking screenshots if KDE’s KSnapshot is not meeting one’s needs.
Terminal Multiplexers¶
For power users doing most of their work from a terminal, the terminal multiplexers, tmux and screen are installed.
Source, Contributing and Licensing¶
This guide is open source and uses the CC-BY-SA license. Contributing is easy. Use the edit link on the top right of the pages and send me a pull request. I look forward to your contributions!