Hello. Welcome to this last GSoC report.

This is also intended to be a description of my work for submission to GSoC’s Final Evaluation.

To wrap things up, pencils are down, my code was submitted to Scilab’s review tool for being eventually (I hope so) included into the main tree, and there is one or two new things I want to share with you.

Code Repositories

First of all, if some of you have interest in taking a better look at my code, it is divided amog two GitHub repositories:

  • First prototype, when I started developing the kernel as an independent binary (not integrated with Scilab’s codebase). This repo is outdated and probably won’t receive updates, but could serve as groundwork for someone who wishes to develop a different Jupyter kernel (You can always contact me, anyways)

Scilab-Jupyter-Kernel-old

  • Scilab’s fork containing the integrated Jupyter kernel work. This is the repo on which I based my submission and from which I’ll further develop the kernel implementation (there are still many little things that should be done)

Scilab-Jupyter-Kernel

Building and Running

For now, as I developed on Linux, only the build files for this platform are ready, but I intend to change the Visual Studio project files (for compilation on Windows) accordingly in the future.

For instructions on how to compile and run it, I set up an entry at Scilab Wiki as part of the required deliverables for this project.

Jupyter Notebook Usage

On some of my posts I mentioned the possibility of using the web-based Jupyter Notebook interface to interact with Jupyter kernels. But, up till now, I have been only showing you my results running on QtConsole desktop application. So let me convince you that it works for Notebook as well.

Assuming that you have set up everything according to the Wiki entry, simply run on your terminal:

$ jupyter notebook

It’ll start a Jupyter Notebook Server and automatically open a tab on your default web browser running the Notebook client:

Clicking New will show a list of the available kernels (the same listed from command line with jupyter kernelspec list). We can select Scilab Native and wait for it to start in another tab:

A issued a simple command to see the output, and it looked correct. Keyboard shortcuts are a little different from a typical console (like submitting new code with Shift+Enter rather than just Enter), but there is documentation for it.

Previous Reports

For not keeping track of this project development reports, as I write new blog posts here, all the GSoC ones could be always acessed from this XML feed (Thanks, Planet GSoC);

Final Considerations

I don’t want to be a cry baby about it, but the last months were a little tough. I had more academic demands than expected, and needed to conciliate this with performing some significant work on my project every week. But somehow this makes me even more satisfied that I came this far.

Partly because of the reduced work time, there is a lot of missing pieces on the kernel, like handling graphic plots (I’ll probably need to deal with the JVM for it) and multiple clients (which I have to figure out how, as Scilab’s context is a singleton). But I obviously wish to work on that in the near future, to have a completely functional result.

I don’t really know if I’ll pass final evaluations by Google, but, regardless, I’m really glad for all the coding and development experience I got during these weeks. I’ll probably use ZeroMQ and Jupyter for personal projects, and try to contribute more to Scilab, of course.

I really want to thank my mentors for the provided guidance during this work, and all of you who followe this blog posts.

I expect to see you again soon.