Filipe Saraiva's blog

Tecnologia, sociedade e política.

Archive for the ‘gsoc2011-scilab-backend’ tag

Scilab diz: “Hello Cantor!”

with 2 comments

…e também faz cálculos!

Nestas últimas semanas, trabalhei basicamente com a comunicação entre o Cantor e o Scilab, via o backend que estou desenvolvendo. A tarefa foi bem interessante pois houve mudanças no projeto, na tecnologia escolhida para a implementação.

Antes eu havia proposto o uso da API call_scilab, que faz a comunicação entre código C/C++ com o Scilab. Mas, estudando o código do Cantor, percebi que os demais backends utilizam a classe KProcess (ou QProcess), que permite que código em Qt inicialize uma thread de outro software e faça a comunicação com ele via os streams padrões stdout, stderr e stdin.

Entretanto, o Scilab originalmente não usava esses streams. Então, conversando com meu mentor Ledru, resolvemos implementar essa funcionalidade.

Após alguns dias e mais estudos, consegui prover o suporte a estas saídas no Scilab! E, voilá, Scilab diz “Hello Cantor!” via backend! Clique nas imagens para ampliar:

O backend está de fato funcional, apesar de, claro, faltarem alguns detalhes. Agora teremos muitas screenshots. :-)

Backend do Cantor para o Scilab faz cálculos:

Adiciona variáveis, usa funções pré-definidas e permite vários cálculos em um mesmo workspace:

Trabalha com vários workspaces simultaneamente:

Emite as mensagens de erro no workspace:

É isso! Bem, vamos agora a um resumão com informações rápidas sobre este projeto:

O que falta?

  • Gerenciamento de criação de gráficos. Atualmente, o backend gera o gráfico do Scilab em outra janela. Será adicionada a possibilidade de geração do gráfico dentro do workspace do Cantor;
  • Destaque de sintaxe;
  • Alto-complete de funções nativas do Scilab;
  • Trabalhar a codificação dos caracteres da saída;
  • Gerenciar saídas grandes. Quando Scilab faz um cálculo e vai imprimir muitas informações na tela, o ambiente mostra apenas uma parte da saída e pergunta se o usuário quer ver mais. No backend isto não funciona, pois quando a primeira parte da saída é mostrada, não há mais como enviar outra entrada para o Scilab. Veja abaixo, na imagem:

É possível testar este backend?

O código do backend que está no branch scilab-backend do repositório do Cantor realiza todas as funções aqui descritas. Entretanto, ela precisa da nova versão do Scilab para funcionar, pois tive que implementar o suporte aos streams padrões – ou seja, é necessário baixar o código do Scilab e compilá-lo. Em outro momento, irei escrever um post com algumas dicas sobre a compilação do Scilab.

Para quem não quer se aventurar no processo de compilação do Scilab, o jeito é esperar a próxima versão do Scilab que deve ser lançada em setembro. Apenas a partir dela é que o backend para Scilab no Cantor funcionará.

Então é isso amigos, obrigados a aqueles que leram o texto até aqui e fiquem atentos para maiores novidades. E não deixe de fazer um comentário aqui sobre o que você está achando desse projeto. ;-)

Written by Filipe Saraiva

June 3rd, 2011 at 5:47 pm

Scilab showing the face at Cantor

with 2 comments

…but without saying “Hello Cantor”, yet.

In recent weeks, I’ve been studying the interfaces that allow communication between Cantor and their backends, mainly the implementations of the classes backend, session, and expression. From these studies, I put the objective to implement the respective classes derived from these that will form the basis of Scilab backend in Cantor, and already providing a configuration interface along the lines of those found in other Cantor backends

Click on pictures to enlarge:

Configuration screen now with the option to Scilab

 

Close

For now, I’m working with these configuration options for the backend: one path to the scilab-cli (the Scilab terminal client) and the option of integrating the graphics on the results sheet of Cantor. This option is interesting because it gives the user freedom to choose between loading the figure in the software itself or using the graphical management of Scilab, which allows some interactions with the user for configuring the graph generated.

Me and my mentor, Sylvestre Ledru, we’re thinking about working configuration of these charts also via command line, from the development of extensions to the call_scilab API. This API is responsible for the interaction between code written in C/C++ and Scilab.

My next goal is to implement the execution of operations in Scilab environment from Cantor. So, I can say that the next step Scilab will say “Hello Cantor”  in Cantor environment! And, of course, make some calculations too. ;-)

See you soon!

Written by Filipe Saraiva

May 5th, 2011 at 4:46 pm

Scilab mostrando a cara no Cantor

without comments

…mas sem ainda dizer “Hello Cantor”.

Nas últimas semanas estive estudando as interfaces que permitem a comunicação entre o Cantor e seus backends, principalmente a partir das implementações das classes backend, session e expression. A partir destes estudos, coloquei como objetivo implementar as respectivas classes derivadas destas que formarão a base do backend para o Scilab no Cantor, além de já prover uma interface de configuração nos moldes daquelas encontradas nos demais backends.

Clique nas figuras para aumentar:

Tela de configuração já com a opção para Scilab

 

Close

Por enquanto, estou trabalhando com estas opções de configuração do backend: um caminho para o executável scilab-cli (o cliente de terminal do Scilab) e a opção de integrar os gráficos na planilha de resultados do Cantor. Esta opção é interessante pois dá liberdade ao usuário para escolher entre carregar a figura no próprio software ou utilizar o gerenciamento gráfico do Scilab, que permite algumas interações com o usuário para configuração do gráfico gerado.

Eu e meu mentor, Sylvestre Ledru, estamos pensando em trabalhar a configuração destes gráficos também via linha de comando, a partir do desenvolvimento de extensões para a API call_scilab. Esta API é a responsável pela interação entre código escrito em C/C++ e o ambiente Scilab.

O meu próximo objetivo é conseguir de fato implementar a execução de operações no ambiente Scilab a partir de Cantor. Então, posso dizer que o próximo passo será fazer o Scilab dizer “Hello Cantor” dentro do ambiente Cantor! E claro, também fazer alguns cálculos e usar funções pré-definidas. ;-)

Até breve!

Written by Filipe Saraiva

May 5th, 2011 at 3:31 pm

My Project in Google Summer of Code: One Project, Two Communities

with 6 comments

Today the results of the Google Summer of Code 2011 were released, and I am very happy – my project in Cantor backend to Scilab was approved in Scilab slot! In this link uou can read the abstract of the proposal. In here has a link to some tests of using the call_scilab API, making the connection between C++ code and Scilab enviroment.

My mentor will be Sylvestre Ledru, one of the engineers responsible for Scilab development.

The most interesting aspect of this project is that its results will be important in two different communities of free software – Scilab and the KDE, through scientific software Cantor.

The next steps of this work will be promptly reported in this blog. Stay alert, and I hope to receive feedback from interested parties to announce that each new!

In this  link you will find more projects approved in this edition of Google Summer of Code.

Even more personal, and keep your eyes open!

Written by Filipe Saraiva

April 26th, 2011 at 12:37 am

Meu projeto no Google Summer of Code: Um Projeto, Duas Comunidades

with 2 comments

Hoje saiu o resultado do Google Summer of Code 2011, e estou muito feliz – meu projeto de backend para o Scilab no Cantor foi aprovado em um slot do Scilab! Neste link você poderá ver o abstract da proposta. Aqui tem um link para alguns testes do uso da API call_scilab, fazendo a ponte entre o código C++ e o Scilab.

Meu mentor será Sylvestre Ledru, um dos engenheiros responsáveis pelo desenvolvimento do Scilab.

O mais interessante deste projeto é que seus resultados serão importantes para duas comunidades diferentes de software livre – a do Scilab e a do KDE, através do software científico Cantor.

Os próximos passos desta empreitada serão prontamente relatados neste blog. Fiquem de olho, e espero receber o feedback dos interessados a cada novidade que anunciarmos!

Neste link você encontra mais projetos aprovados nesta edição do Google Summer of Code.

Até mais pessoal, e fiquem de olho!

Written by Filipe Saraiva

April 26th, 2011 at 12:23 am