Filipe Saraiva's blog

Tecnologia, sociedade e política.

Archive for the ‘python’ tag

Novidades no Editor de Scripts do Cantor

without comments

Um post rápido sobre o Cantor antes da última metade das festas de Carnaval.

KDE 4.13 está com as funcionalidades congeladas agora, e tive tempo de desenvolver algumas melhorias para o editor de scripts do Cantor, que estará disponível no próximo lançamento estável do KDE por volta de 16 de abril.

Agora, os backends para Python 2 e Scilab tem suporte ao editor de scripts! Veja algumas imagens:

python_script_editorEditor de scripts do Cantor para Python 2

scilab_script_editor Editor de scripts do Cantor para Scilab

Você pode acessar o editor de scripts via barra de menu Exibir -> Mostrar Editor de Script. O editor é baseado em kate-part, então ele disponibiliza destaque de sintaxe, numeração de linhas, mini-mapa do texto, e todas as outras coisas legais disponíveis no Kate. Você também tem um botão Executar Script que, após pressionado, carrega o script na área de trabalho do Cantor, como pode ser visto nos exemplos.

Há outras novidades também para os demais backends do Cantor. O Editor de Scrips agora carrega o destaque de sintaxe padrão para cada backend – nas versões anteriores, isso não acontecia. E também, se você pressionar o botão Novo, o novo editor já terá o destaque de sintaxe padrão funcionando também.

Estas são as novidades do meu trabalho no Cantor para o KDE 4.13. Eu pretendo melhorar o backend para Python 2 e o editor de scripts em lançamentos futuros.

Mas agora é hora de aproveitar o restinho do carnaval nas festas de rua do Brasil. Feliz Carnaval! ;)

Cantor’s script editor news

with 4 comments

A small blogpost about Cantor before Brazilian Carnival parties.

KDE 4.13 is feature freeze now and I developed some improvements in Cantor’s script editor. It will be available in next KDE stable release around April 16.

Now Python 2 and Scilab backends have support to script editor! See some pictures:

python_script_editorCantor Script Editor for Python

scilab_script_editor Cantor Script Editor for Scilab

You can access script editor in menu bar View -> Show Script Editor. The script editor is based in kate-part, so you have syntax highlighting, line numbering, mini-map, and all cool stuffs from Kate. You have a Run Script button too, so you can just push this button and the script will be load in Cantor worksheet, as you can see in examples.

There is news for others Cantor backends too. Now script editor load default syntax highlighting for each backend – in old versions it did not happen. And, if you push New button, the new script editor will have the default syntax highlighting working too.

It is the news about my work in Cantor for KDE 4.13. I intent improve Python 2 backend and script editor for future releases.

But now it is time to go to Brazilian street parties! Happy Carnival! ;)

Algumas novidades do Mageia 4

with 2 comments

E o Mageia chega ao seu quarto release estável!

Entre as novidades temos o MageiaWelcome – um aplicativo que executa na inicialização da distro e dá dicas sobre instalação de pacotes adicionais e canais de suporte do Mageia; a disponibilização dos ambientes gráficos Mate e Cinnamon; o port das ferramentas drak para GTK+ 3; a possibilidade de criar pen drives bootáveis através de uma nova ferramenta chamada isodumper; bash-completion instalado por default; a adoção do novo esquema de nomes para interfaces de rede; e mais.

Também temos versões mais modernas de softwares como KDE (4.11.4), GNOME (3.10.2.1), LXDE, XFCE (4.10), Razor-QT, Libre Office (4.1.3.2), RPM (4.11.1), systemd 208, e outros. O GRUB ainda é usado por padrão, mas o GRUB 2 está disponível também. O kernel entregue é o 3.12.8.

Além das novidades listadas temos a atualização de diversos pacotes e a disponibilização de novos. Você pode ver neste quadro uma comparação entre os pacotes do Mageia 3 e Mageia 4.

Especificamente pro pessoal do Python, essa versão do Mageia adicionou o suporte a PythonByteCompiling.

E sobre os pacotes que mantenho na distro, tenho algumas novidades: o pacote abntex2 foi incluído no texlive; os pacotes swi-prolog agora seguem a convenção de nomes de pacotes crossdistro do projeto; disponibilizei 3 lançadores full-screen para o KDE (a saber: plasma-applet-homerun, plasma-applet-simplewelcome e plasma-applet-takeoff); o tema Caledonia, surgido no Chakra Linux, agora pode ser instalado no Mageia (plasma-desktoptheme-caledonia e plasma-desktoptheme-caledonia-wallpapers); temos um cliente para pump.io chamado Dianara; um aplicativo para conversas privativas, Retroshare; um aplicativo para escrita de textos voltado a escritores, Plume-Creator; e mais. Ao todo estou mantendo 13 pacotes, um acréscimo interessante comparado aos 2 disponibilizados no Mageia 3.

Qualquer dúvida ou necessidade de suporte em português, procure a comunidade Mageia do Brasil e ajude o Mageia a ser cada vez melhor.

Leia mais detalhes sobre esse lançamento, bem como instalação e atualização via Mageia 3, na nota oficial traduzida.

Written by Filipe Saraiva

February 1st, 2014 at 7:35 pm

Cantor: Python 2 backend feature tour

with 12 comments

Introduction

python2_selectCantor backend selection screen

In 2013 I developed a Python 2 backend for Cantor, a project funded in part by Google Summer of Code. Now this backend is available in Cantor released in KDE 4.12.

Cantor is a mathematical/scientific programming software, a frontend providing IDE features (syntax highlighting, tab-complete, variables management, and more) and a advanced terminal. Cantor support a lot of mathematical engines like Octave, Sage, Maxima, Kalgebra, Qualculate, R, Scilab (developed by me too), and now, Python 2. You can see Cantor as a Matlab-like software, but it uses other mathematical environment/software as programming language.

This post I will do a “feature tour” in Python 2 backend to show Cantor software for scientific python developers community.

Initial Screen – Syntax Highlighting and Tab Complete

python2_initialscreenCantor initial screen

After select the Python 2 backend, Cantor will show the initial screen. This window have a big widget for the Python 2 terminal, and two side panels – one to show the Python 2 help and the other to variables management.

Let’s see some commands inputs in the terminal:

python2_syntaxSyntax highlithing

Cantor is highlighting the Python 2 syntax and, in side panel, you can see the variables created.

Now, let’s create new variables with similar names to test the tab complete. See the picture below:

python2_completeTab complete for variables

After create variables variable_x, variable_y e variable_var, we can write in terminal var and type tab key twice – Cantor will show the variables and functions with the same piece of word. Tab complete is available for module functions too.

python2_complete2Tab complete for module functions

Cantor show error messages in terminal too. Next figure show a import error:

python2_errorError message

You can save the terminal state or just the input commands and their outputs in a file. Cantor allows upload/download a terminal example for a remote server. You can explore this features in “File” menu.

Help Panel

Cantor shows Python help from help command in a side panel. The picture below shows the help for complex class:

python2_helpHelp panel

Cantor uses Qt/KDE technologies, so you can change the window format moving the side panels. Next picture show the window with the variables management in the left side and the help panel in the right side.

python2_help_completePanels in different sides

Variables Management

python2_variables Variables management panel

Variables management panel shows the variables created in Cantor session, showing their labels and values. The panel have some additional functions too, in buttons bottom the widget. These functions are, from left to right, Add variableLoad variables, Save variables, and Clear all variables.

Add variable just open a pop-up window to input a label and a value to a variable.

Load variables and Save variables uses shelve module to data persistence. When the buttons are clicked, Cantor loads scripts to, in first case, read and load variables to the session, and, in second case, save the python dictionary in a file. The figures below show this operations:

python2_save_variablesSaving variables

python2_load_variablesLoading variables

The function Clear all variables delete each variable from Python dictionary. The code is below:

python_backend_variable_management_usecase6Graphics

python_command_to_plotCode for graphic creation using matplotlib

python_plot_resultGraphic loaded in Cantor

The figures below show the graphic loaded in Cantor worksheet. When a session is exported, the graphic will be exported too. This feature can be configured to create the graphics in a new window – this is the default option.

Conclusion and Future

This is the first stable version of Python 2 support in Cantor. It is working good, but you can see the bug presence in some parts of software.

I would like to see some feedbacks from mathematical/scientific programming python community. I am not a “pythonist”, so the python community can find bugs and strange behaviours in the software better than me. I would like to see some feature suggestions too.

For the next version, Python 2 backend will have support to script editor – unfortunately, I can not develop it for this release.

If you are interested in the backend development, my blog have a set of posts (in Portuguese and English) about it. You can download the source code in Cantor repository – the license is GPLv2. And you can submit a bug report in KDE bugzilla.

And you can contact me in comments area below or in my mail address filipe at kde.org.

Written by Filipe Saraiva

January 16th, 2014 at 10:42 am

Hello Planet Python

without comments

Hello Python community,

My name is Filipe Saraiva, I am not a python developer (I am a novice in python), but I am a C++ and KDE developer.

I developed a backend for Python 2 in Cantor, the KDE mathematical software. This backend was released in KDE 4.12 and now is available for all.

I would like to see some feedbacks from scientific python community about improves in this backend. I intent to develop a Python 3 and a iPython backend too in the future.

I will write a “tour post” about the Python 2 backend features soon, but you can see posts about the backend development in the tag python-backend (posts in English and Brazilian Portuguese).

Written by Filipe Saraiva

December 28th, 2013 at 5:25 pm

Cantor: tour pelas funcionalidades do backend para Python 2

with 5 comments

Introdução

python2_selectTela de seleção de backends do Cantor

Em 2013 desenvolvi um backend para Python 2 no Cantor, um projeto financiado em parte pelo Google Summer of Code. Agora este backend está presente na versão do Cantor lançado com o KDE 4.12.

Cantor é um software para programação científica/matemática do KDE que serve como frontend para diferentes engines matemáticas, entregando um ambiente que reúne facilidades típicas de uma IDE (como destaque de sintaxe, tab-complete, gerenciamento de variáveis, etc) e um terminal avançado. Cantor tem uma arquitetura modular que permite ao desenvolvedor escrever o suporte para diferentes engines matemáticas como backends. Atualmente, Cantor suporta Octave, Sage, Maxima, Kalgebra, Qualculate, R, Scilab (este também desenvolvido por mim) e, em sua versão mais recente, Python 2.

Neste post faremos uma “tour” pelas funcionalidades presentes nesta primeira versão do backend para Python 2.

Tela Inicial – Destaque de Sintaxe e Tab Complete

python2_initialscreenTela inicial do Cantor

Após selecionar o backend Python 2, o Cantor mostrará a tela inicial. Basicamente ela dispõe de uma grande tela que serve como o terminal do Python 2, e dois painéis – um para mostrar saídas de ajuda e outro para o gerenciamento de variáveis.

Vamos entrar com alguns comandos básicos no terminal para vermos como ficará a tela da aplicação:

python2_syntaxDestaque de sintaxe

Percebam que o Cantor está destacando a sintaxe do Python 2 e, no painel ao lado, é possível ver as variáveis produzidas durante a interação com o terminal. Voltaremos a este painel em outra seção.

Agora vamos criar novas variáveis com nomes parecidos e testar o tab complete. Veja a figura abaixo:

python2_completeTab complete para variáveis

Após criarmos as variáveis variable_x, variable_y e variable_var, escrevemos até var e teclamos tab duas vezes – Cantor apresentará as variáveis ou funções compatíveis com aquele início de nome. O tab complete também funciona para funções de módulos, como pode ser visto na próxima imagem.

python2_complete2Tab complete para funções de módulos

Cantor também trata erros no terminal. A próxima figura apresenta a mensagem de erro durante um import incorreto.

python2_errorMensagem de erro

Também é possível salvar o estado do terminal ou apenas os comandos e suas respectivas saídas em um arquivo externo. Cantor também permite enviar/baixar um exemplo do terminal para um servidor remoto. Explore estas funcionalidades na aba “Arquivo“.

Painel de Ajuda

Cantor exibe a ajuda do Python, obtida a partir do comando help, em um dos painéis laterais da interface. A figura abaixo apresenta a saída de ajuda para a função complex:

python2_helpPainel de ajuda

Como Cantor usa tecnologias Qt/KDE, é possível deslocar os paineis laterais e mudar o formato da tela. Abaixo temos um exemplo onde o painel de ajuda está na direita do terminal enquanto o gerenciador de variáveis está na esquerda.

python2_help_completePainéis de cada lado da tela

Gerenciamento de Variáveis

python2_variablesPainel de gerenciamento de variáveis

Além de ter a clara função de apresentar as variáveis e seus respectivos valores, o painel de gerenciamento de variáveis permite algumas operações adicionais através dos botões na parte inferior do widget. São eles, da esquerda para a direita: Adicionar uma nova variável, Carregar variáveis, Armazenar variáveis, e Limpar variáveis.

Adicionar uma nova variável é uma funcionalidade simples que exibe um pop-up e permite a criação de uma variável.

Carregar variáveis e Armazenar variáveis fazem uso do módulo shelve para persistir os dados do ambiente de execução do Python. Quando os botões são clicados, Cantor carrega scripts que irão, no primeiro caso, ler um arquivo e carregar as variáveis no ambiente e, no segundo, varrer o dicionário global do python salvando as variáveis em um arquivo. Vale comentar que, como utiliza-se o shelve, estamos sujeitos às restrições desse módulo – por exemplo, não é possível salvar variáveis que referenciam módulos importados. As figuras abaixo apresentam as operações descritas.

python2_save_variablesSalvando variáveis

python2_load_variablesCarregando variáveis

Entre a operação de armazenamento e de carregamento das variáveis, utilizamos Limpar variáveis para apagar todas as variáveis do ambiente. O código varre o dicionário global e vai deletando variável por variável. O código carregado pelo Cantor é o seguinte:

python_backend_variable_management_usecase6Gráficos no Cantor

python_command_to_plotCódigo para criação de um gráfico usando matplotlib

python_plot_resultGráfico carregado no ambiente do Cantor

As figuras anteriores apresentam o carregamento de um gráfico no ambiente do Cantor. Quando a planilha é exportada, o gráfico estará lá também. Essa funcionalidade pode ser modificada para a criação do gráfico numa janela separada – que é o comportamento default do backend.

Conclusão e Futuro

Essa é a primeira versão estável do suporte para Python 2, e apesar do básico estar funcionando muito bem, é possível que alguns erros e bugs estejam espalhados pelo sistema.

Gostaria era de ouvir feedbacks da comunidade Python de programação científica/matemática. Eu não sou um pythonista, então conto com a ajuda de vocês para caçar bugs, relatar comportamentos estranhos, e sugerir melhorias e funcionalidades.

Para a próxima versão teremos o suporte ao editor de scripts, que infelizmente não foi possível entregar neste lançamento.

Cantor é uma das muitas iniciativas das comunidades de software livre que visa entregar uma solução de qualidade para programação científica/matemática. Espero que a comunidade Python se aproprie dessa ferramenta e ajude no seu desenvolvimento e evolução.

Para os interessados nos bastidores do backend, há uma série de posts em português e inglês onde descrevo o processo de desenvolvimento da ferramenta. E para quem quiser colocar a mão na massa, basta clonar o repositório do Cantor – cujo código está disponível sob a GPLv2.

E quaisquer dúvidas ou feedbacks, postem aí nos comentários ou mandem e-mail para filipe em kde.org.

Written by Filipe Saraiva

December 27th, 2013 at 2:04 pm

Olá Planeta PythonBrasil

without comments

Olá comunidade pythonística brasileira,

Sou Filipe Saraiva e não sou um desenvolvedor python (ainda estou aprendendo esta linguagem), mas sou um desenvolvedor C++ e KDE.

Recentemente desenvolvi um backend para Python 2 no Cantor, o software matemático do KDE que serve como frontend para diversos motores de programação científica (octave, sage, kalgebra, scilab, entre outros). Este backend foi lançado com o KDE 4.12 e agora está disponível para todos.

Eu gostaria de ouvir alguns feedbacks da comunidade python, em especial daqueles que desenvolvem aplicações científicas, sobre melhorias para o backend. Eu pretendo desenvolver backends para Python 3 e iPython também, no futuro próximo.

Logo mais escreverei um “tour post” sobre as funcionalidades do backend para Python 2, mas se você quiser você pode dar uma olhada nos posts sobre o desenvolvimento do backend a partir da tag python-backend (posts em inglês e português brasileiro).

Written by Filipe Saraiva

December 26th, 2013 at 3:08 pm