Cantor: novas funcionalidades no KDE 4.14

KDE 4.14 foi lançado em agosto de 2014, mas até o momento não tive tempo para escrever sobre as novas funcionalidades do Cantor disponíveis naquele release.

Portanto, vamos corrigir isso agora!

Novo backend: Lua

A família de backends do Cantor tem um novo membro: Lua, usando a implementação luajit.

Este backend já dispõe de várias funcionalidades: destaque de sintaxe, auto-complementação de código, carrega figuras no terminal, editor de scripts, e mais

Cantor + Lua em ação

O backend para Lua foi desenvolvido pelo brasileiro Lucas Negri, e isso é um motivo para eu ficar muito feliz. Bem-vindo a bordo Lucas!

Você pode ler mais sobre esse backend em um texto no blog do Lucas.

Uso de utf8 em códigos LaTeX

Quando você exporta seu terminal para LaTeX, a codificação utf8 agora é utilizada por padrão. Essa melhoria foi desenvolvida por Lucas.

Suporte à extensão pacotes nos backends para Sage e Octave

Agora estes backends tem um assistente para importar pacotes/módulos/bibliotecas.

Suporte para scripts que executam automaticamente

python2_autorun

Scripts para execução automática no backend para Python 2

Agora os backends para Python 2, Scilab, Octave, Sage, Maxima, Qalculate, e KAlgebra tem suporte para execução automática de scripts. Você pode configrar uma série de scripts ou comandos que serão executados no momento em que o Cantor carregar o terminal – ou seja, durante a inicialização.

Adicionado CTRL+Space como alternativa padrão à complementação de código no terminal

O comando padrão para complementação de código no terminal do Cantor é o botão TAB, mas agoras temos uma alternativa a isso: CTRL + Space. Isso manterá a consistência entre o editor de scripts (onde o comando padrão para essa funcionalidade é CTRL + Space) e o terminal.

Suporte inicial para os assistentes de algebra linear e criação de gráficos no Python 2

Desenvolvi um suporte inicial para dois plugins legais no backend para Python 2: algebra linear e criação de gráficos.

Primeiro, vamos ver o plugin de algebra linear. Na barra de menu, vá em Algebra Linear > Criar Matriz. Uma janela para criação de matrizes será aberta. Você deve então colocar os valores nas células.

python3_linearalgebraAssistente de criação de matriz

Após clicar no botão ‘Ok’, o comando para criação de matrizes da biblioteca numpy será carregado no terminal, automaticamente.

python2_linearalgebra_resultNova matriz criada

Por agora este plugin tem implementado apenas o suporte para criação de matrizes.

Veremos agora o plugin para criação de gráficos, que serve tanto para gráficos 2D quanto 3D. Façamos x = numpy.arange(0.0, 2.0, 0.01) e, na barra de menu, vamos em Gráfico > Gráfico 2D. A janela abaixo será aberta.

python2_graphicAssistente para criação de gráficos 2D

Você pode configurar uma expressão para o eixo Y (neste caso estou usando a função seno numpy.sin) e uma váriável ou função para o eixo X (neste caso, 2 * x * numpy.pi). Você poderia apenas colocar x no nome da variável para criar um gráfico dos valores de x.

Após pressionar ‘Ok’, o comando usando pylab será carregado no terminal para criar o gráfico.

python2_graphic_resultO assistente para gráficos 3D segue um padrão similar para criar as figuras.

Como você pode ver, utilizar esses assistentes requer alguns módulos do python carregados na área de trabalho, e eles devem ter os mesmos nomes utilizados nos plugins. Existem diversas formas de carregar módulos no ambiente python (import foo; import foo as [anyname]; from foo import *; etc), então fazer isso de forma genérica é praticamente impossível (na verdade eu queria ouvir algumas sugestões sobre isso da comunidade).

Minha escolha foi carregar numpy, scipy, matplotlib e pylab quando o backend para Python 2 é carregado pelo Cantor. Bem, eu pretendo mudar isso porque esses módulos passam a ser obrigatórios para o backend funcionar corretamente, e também porque pylab não é mais recomendado nas versões recentes do matplotlib. Então, eu espero alterar esse plugin o quanto antes.

De qualquer forma, gostaria de escutar as opiniões da comunidade de usuários de python no ambiente científico sobre essas funcionalidades.

Futuro

No momento estamos trabalhando no port do Cantor para Qt5/KF5. Você pode acompanhar esse trabalho no branch ‘frameworks‘ do repositório do Cantor.

Doações

Se você usa ou aprecia meu trabalho no Cantor, ou em algum outro projeto de software livre, por favor considere fazer uma doação para mim: assim eu poderei continuar me dedicando à contribuições e melhorias nesses projetos.

Você poderia considerar uma doação para o KDE também, e ajudar com a manutenção dessa grande comunidade de software livre e os projetos desenvolvidos por ela.

Cantor: new features in KDE 4.14

KDE 4.14 was released in August 2014 but I did not have time to write about new features in Cantor for that release.

So, let’s fix it now!

New backend: Lua

Cantor family of backends have a new member: Lua, using luajit implementation.

This backend have a lot of features: syntax highlighting, tab complete, figures in worksheet, script editor, and more.

Cantor + Lua in action

Lua backend was developed by Lucas Negri, a Brazilian guy, and this is a reason for me to be very happy. Welcome aboard Lucas!

You can read more about this backend in a text of Lucas blog.

Use utf8 on LaTeX entries

When you to export the worksheet to LaTeX, utf8 will be used as default. This improvement was developed by Lucas.

Support to packaging extension in Sage and Octave backends

Now these backends have an assistant to import packages/modules/libraries.

Support to auto run scripts

python2_autorun

Auto run scripts/commands in Python 2 backend

Now Python 2, Scilab, Octave, Sage, Maxima, Qalculate, and KAlgebra backends have support to auto run scripts. You can configure a set of scripts or commands and they will run automatically after the worksheet launch!

Add CTRL+Space as alternative default code completion to worksheet

Default code completion command in worksheet is TAB key, but now we have an alternative command too: CTRL + Space. It will maintain consistence between script editor (where the default code completion is CTRL + Space) and worksheet.

Initial support to linear algebra and plot assistants in Python 2

I developed the initial support to 2 amazing plugins in Python 2 backend: the linear algebra plugin and the plot plugin.

First, let’s see the linear algebra plugin. In menu bar go to Linear Algebra > Create Matrix. A window to matrix creation will be open, as below. You must to put the values in the cells.

python3_linearalgebraMatrix creation assistant

After push ‘Ok’ button, the matrix command from numpy  module will be loaded in the worksheet, automatically.

python2_linearalgebra_resultNew matrix created

For now this plugin have implemented just the matrix creation.

Let’s see the plot plugin now. You can use it to create 2D and 3D plot. Let’s to do x = numpy.arange(0.0, 2.0, 0.01) and, in menu bar, go to Graphics > Graphics 2D. The window below will be open.

python2_graphicPloting 2D assistant

You can set some expression to be the Y axis (in this case I am using numpy.sin) and a variable name to X axis (this case, 2 * x * numpy.pi). You could to put just x in variable name to do a plot with the values of x.

After push ‘Ok’ button, the command using pylab will be load in worksheet to make the graphic.

python2_graphic_result3D plotting assistant have a similar way to create the pictures.

How you can see, to use this assistants we need to have some python modules in the workspace, and they must to have the same name used in the plugins. There are a lot of ways to import modules in python environment (import foo; import foo as [anyname]; from foo import *; etc), so to do a generic way to use it is impossible (well, if you have some idea I would like to hear it).

My choice was to import numpy, scipy, matplotlib and pylab when Python 2 backend is loaded by Cantor. Well, I intent to change it because that modules will be mandatory to use Python 2 backend correctly, and pylab is not longer recommended in recent matplotlib version. So, wait for some changes in this plugin soon.

In any case, I would like to hear the opinions of scientific python community about this features.

Future

For now we are working in Cantor port to Qt5/KF5. You can follow the work in ‘frameworks‘ branch on Cantor repository.

Donations

If you use or appreciate my work in Cantor or another free software project, please consider to make a donation for me, then I can to continue my contributions to improve Cantor.

You can consider make a donation to KDE too, and help with the maintenance of this great free software community and their products.

Month of KDE Contributor: From LaKademy …

In recent weeks I had an intense “Month of KDE Contributor” that began with LaKademy, the KDE Latin American Summit, and ended with Akademy, the KDE World Summit. It was a month somewhat tiring, hard work, but it was also filled with good stories, great meetings, new contacts, discoveries and, I can say, fun.

This post I will write about LaKademy and the next I will comment about Akademy.

logoazul_menor

The second edition of LaKademy took place in São Paulo, one of the biggest cities of Latin America, in FLOSS Competence Center of University of Sao Paulo, an entire building dedicated to studies and researches on various aspects of free software: licenses, software engineering, metrics extracted from repositories, social aspects of collaboration, and more.

This year I and Aracele were the conference organizers, and I believe that we could provide all the infrastructure necessary to LaKademy attendees had good days of work in a pleasant and comfortable places.

First day we had talks of collaborators, and one that most caught my attention was Rafael Gomes on KDE sysadmin. It’s amazing the size of the infrastructure behind the scenes, a solid base that allows developers to do their jobs. It would be interesting to promote more this type of collaboration to attract potential contributors who prefer this side of computing.

14923088670_415cfc44df_z

This day I presented a talk about Qt in Android, describing the development tools configuration in Linux, presenting a basic Hello World, and commenting on some softwares availables using this technology, specially the VoltAir and GCompris. The presentation is below (in portuguese).

.

Second day we had a short-course about Qt, presented by Sandro Andrade. Impressive his didactic and how he manages to hold our attention for a whole day without getting boring or tiring. This day I was helping the other participants, especially those who were having the first contact with Qt development.

The third and fourth days were devoted to application hacking and projects development. I joined in “task-force” to port Bovo to KF5, I started the development of a metapackage to install all KF5 packages in Mageia, and I started the port of Cantor to KF5. I also fixed some KDE Brazil bots on social networks.

15106702121_ff87d73880_z

Task force to port Bovo to KF5

Fourth day we had a meeting to discuss some initiatives to promote KDE in Latin America, and we started to use Kanboard of KDE TODO to organize the implementation of these projects.

Besides the work we had some moments of relaxation at the event, as when we went to Garoa Hacker Clube, the main hackerspace in São Paulo, an activity we call Konvescote; and also when we all went to Augusta Street, one of the famous bohemian streets in the city.

15086717746_ec5d444223_z

KDE + Garoa

However, as in all events of Free Software and KDE Brazil, the best thing is see old friends again and meet new ones that are coming to the boat. For the novices, welcome and let’s to do a great work! For the veterans, we still have a good road ahead on this idea of writing free software and give back to the world something of beautiful, high quality technical, that respect the user.

KDE Brazil team wrote an excelent post enumerating what the attendees produced during the event. I suggest to all who still want more information to read that text.

I leave my thanks to KDE e.V. for providing this meeting. I hope to see more contributors in next LaKademy!

Mês do Contribuidor KDE: Do LaKademy…

Nas últimas semanas tive um intenso “mês do contribuidor KDE” que começou com o LaKademy, a conferência latinoamericana, e terminou com o Akademy, a conferência mundial. Foi um mês um tanto cansativo, de muito trabalho, mas que também foi repleto de boas histórias, grandes reencontros, novos contatos, descobertas e, por que não dizer, divertido.

Nesse artigo irei falar do LaKademy, e no próximo comentarei o que rolou no Akademy.

logoazul_menor

A segunda edição do LaKademy ocorreu em São Paulo, uma das maiores cidades da América Latina, no Centro de Competência em Software Livre da USP, um prédio inteiro dedicado à estudos e pesquisas sobre vários aspectos do software livre: licenças, engenharia de software, métricas extraídas de repositórios, aspectos sociais da colaboração, e mais.

Nesta edição coube a mim e à Aracele fazermos todos os ajustes da organização do evento, e acredito que cumprimos bem o objetivo de prover toda a estrutura necessária para termos bons dias de trabalho em locais agradáveis e confortáveis.

No primeiro dia tivemos uma série de palestras dos colaboradores, e uma das que mais me chamaram atenção foi do Rafael Gomes sobre o sysadmin do KDE. É impressionante o tamanho da estrutura que está nos bastidores, uma sólida base que permite aos desenvolvedores realizarem seu trabalho. Taí um campo que seria interessante divulgarmos mais para tentarmos atrair possíveis colaboradores que preferem esse lado da computação.

14923088670_415cfc44df_z

Nesse dia eu também apresentei uma palestra sobre Qt no Android, descrevendo como configurar o ambiente no Linux, apresentando um Hello World básico, e comentando sobre diversos softwares já disponíveis que usam essa tecnologia, em especial o VoltAir e o GCompris. Segue abaixo a apresentação

.

No segundo dia tivemos um mini-curso sobre Qt, apresentado pelo Sandro Andrade. Impressionante a didática dele e como consegue prender nossa atenção durante um dia inteiro sem ficar enfadonho ou cansativo. Meu trabalho nesse dia foi mais auxiliar os demais participantes, em especial aqueles que estavam tendo contato com Qt pela primeira vez.

Os terceiros e quartos dias foram dedicados ao hacking de aplicações e desenvolvimento de projetos. Eu dei uma força no multirão para portar o Bovo para KF5, iniciei o desenvolvimento de um metapacote para instalar todo o KF5 no Mageia, e comecei a portar o Cantor para KF5. Também trabalhei na reconfiguração dos bots do KDE Brasil nas redes sociais, uma pendência que tínhamos já há algum tempo.

15106702121_ff87d73880_z

Força-tarefa-multirão trabalhando no Bovo

No quarto dia também tivemos uma reunião para discutir algumas iniciativas de promoção do KDE na América Latina, e começamos a usar o Kanboard do KDE TODO para organizar a execução desses projetos.

Além do trabalho tivemos momentos de descontração no evento, como quando fomos visitar um dos principais hackerspaces de São Paulo, o Garoa Hacker Clube numa atividade que chamamos de Konvescote; e também quando fomos todos para a Augusta, uma das famosas ruas boêmias da cidade.

15086717746_ec5d444223_z

KDE + Garoa

Entretanto, como aliás em todos os eventos do KDE Brasil, o melhor de tudo foi reencontrar os amigos e conhecer outros novos que estão chegando ao barco. Para os últimos, que sejam todos bem-vindos e vamos arregaçar as mangas! Para os primeiros, que tenhámos ainda uma boa estrada pela frente nessa ideia de escrever software livre e, de alguma forma, retribuir para o mundo algo como programas de alta qualidade técnica e que respeitam o usuário.

O KDE Brasil escreveu um excelente review enumerando o que a comunidade produziu durante o evento, sugiro a todos que queiram ainda mais informações a darem uma olhadinha lá.

E fica meu agradecimento ao KDE e.V. por proporcionar esse encontro! Espero ver muito mais contribuidores no próximo LaKademy!

Minha lista TODO para o LaKademy 2014

logoazul_menor

Nesta semana em São Paulo, uma das maiores cidades deste planeta, sediará a segunda Conferência Latino Americana do KDE – ou, como chamamos, o LaKademy!

O evento ocorrerá no Centro de Competência em Software Livre da Universidade de São Paulo, um lugar interessante onde academia, empresas, e comunidades, trabalham juntas para criar, melhorar, e pesquisar sobre software livre.

Neste evento, a comunidade Latino Americana do KDE tentará algo novo: teremos apresentações sobre particularidades do KDE. Em eventos específicos do KDE por aqui, é mais comum termos apenas sessões de hacking, enquanto as apresentações e mini-cursos são ofertados nos eventos de software livre mais gerais. Desta vez nós organizamos um evento aberto para não-contribuidores do KDE, e talvez ao final eles se tornem contribuidores do projeto.

A programação do evento tem vários assuntos: arte, port de softwares do GTK para Qt (um potencial flamewar), KDE Connect, e mais. Eu apresentarei um tutorial introdutório sobre C++ + Qt + KDE no Android. O principal caso de estudos será o GCompris, e será interessante mostrar um software cujo o mesmo code pode ser compilado e executado no Linux e no Android. Também apresentarei outros softwares: liquidfun, uma biblioteca C++ para simulação de fluídos (que tem uma demo muito massa no Android); VoltAir, um jogo desenvolvido em QML pelo Google para o Android (e open source!); e talvez KAlgebra, mas eu preciso compilá-lo ainda.

Sim, isso é C++ e QML no Android!

Para as sessões de hacking eu reservarei um tempo para estudar o port do Cantor para Qt5/KF5; é hora de começar esse trabalho. Ainda sob esse tópico, pretendo conversar com os amigos do KDE sobre um software para auxílio de escrita de artigos científicos… mas bem, espere por novidades no próximo ano. =) Farei também algum trabalho com os bots do KDE Brasil que funcionam nas redes sociais, corrigindo alguns bugs, etc.

Para as reuniões, espero discutir sobre as ferramentas de comunidação que temos (e minha proposta é usar o KDE todo para auxiliar no gerenciamento de nossas ações), e contribuir com a avaliação das ações do KDE Brasil no nosso país. Desde o pultimo LaKademy (2012, Porto Alegre), nós continuamos a promover o KDE nos eventos de software livre, e pudemos trazer vários contribuidores do KDE para o Brasil. Agora é hora de pensarmos em mais e novas atividades para realizarmos.

Mas LaKademy não é apenas sobre trabalho. Nós teremos algumas atividades culturais também, como o Konvescote no Garoa Hacker Club, um hackerspace em São Paulo, e algumas cervejas para bebermos na Vila Madalena. Mais importante, estou muito feliz em rever os amigos do KDE de novo (Brasil, por que tão grande?).

Estamos trabalhando para fazer um LaKademy fantástico esse ano! Fique de olho no Planet KDE e no Planet KDE Português para acompanhar mais notícias diretamente do evento!

Vejo você no LaKademy!

(ou no Akademy, mas isso é história para um outro post :) )

imgoingtoLakademytamanhopequeno

My TODO List for LaKademy 2014

logoazul_menor

Next week São Paulo, one of the biggest cities in this planet, will host the second KDE Latin America Summit – or, how we call, LaKademy!

The event will be held in the FLOSS Competence Center of University of São Paulo, an interesting center where academia, enterprises, and community works together to create, to improve, and to research free and open source software.

In this event, Latin America community will try a new thing: we will have presentations about KDE stuffs. In specific KDE events of this part of the world it is more common to have only hacking sessions, and KDE presentations and short courses are given only in more general free software events. This time we organized an “open” event to non-KDE contributors too – maybe in the end of event they will be new gearheads.

The event program have a lot of topics: artwork, porting software from GTK to Qt (potential flamewar detected =D), KDE Connect, and more. I will present an introductory tutorial about C++ + Qt + KDE on Android. The main study case to be presented will be GCompris, and it will be interesting to show a software with a same source code compiling and running on Linux and Android. I will to show another software too: liquidfun, a C++ library to liquid simulation (it have an amazing demo in Android); VoltAir, a QML-based game developed by Google to Android (and open source!); and maybe KAlgebra, but I need to compile it yet.

Yes, it is C++ and QML on Android!

For hacking session I will reserve a time to study the Qt5/KF5 port of Cantor; it is time to begin this work. Other thing in this topic, I would like to talk with my KDE colleagues about a software to help scientific writing… well, wait for it until next year. =) I will work in KDE Brazil bots on social networks to fix some bugs too.

For meetings, I expect to discuss about communications tools (my propose is to use KDE todo to help with promo actions management), and to contribute with evaluation of KDE Brazil actions in the country. Since last LaKademy (2012, Porto Alegre), we continues to spread KDE in free software events, and we can to bring several KDE contributors to Brazil too. Now we must to think in more and news activities to do.

But LaKademy is not only about work. We will have some cultural activities too, for example the Konvescote at Garoa Hacker Club, a hackerspace in São Paulo, and some beers  to drink in Vila Madalena district. More important, I am very happy to see my KDE colleagues again (Brazil, why so big?).

So, let’s to do an amazing LaKademy this year! Look at Planet KDE and Planet KDE Portuguese to see more news directly from the event!

I see you at LaKademy!

(or in Akademy, but it is story to other post :) )

imgoingtoLakademytamanhopequeno

KDE passando o chapéu para realização do Randa Meeting 2014

Desde 2009 o KDE reúne durante alguns dias diversos desenvolvedores na cidade suíça de Randa para trabalharem em projetos chave da comunidade. Esses sprints já resultaram em importantes avanços para os usuários das tecnologias desenvolvidas pelo KDE, como o KDE Frameworks 5, o Plasma Next, melhorias no Qt, diversos softwares do KDE Edu, e mais.

Em 2014 haverá uma nova edição desse encontro, o Randa Meeting 2014, e a comunidade iniciou uma campanha de arrecadação para custear essa atividade.

Visite a página da campanha ou a versão que o KDE Brasil traduziu e saiba mais sobre os projetos desenvolvidos nas edições anteriores, quais os planos para a edição de 2014, quem deverá participar, quais os tipos de despesas, e mais.

Eu já fiz minha contribuição, agora é com você – seja usuário, desenvolvedor, ou simpatizante do KDE ou das comunidades e ideias do software livre em geral, contribua! Toda ajuda é bem-vinda.