Resumo Lakademy 2012

Olá Pessoal,

Faz um certo tempo que estou sumido, mas agora estou de volta.

Primeiro, para quem estava de férias em Marte nos últimos meses, está ocorrendo desde sexta-feira (27/03) em Porto Alegre o LaKademy (Conferência latino-americana de colaboradores do KDE – http://br.kde.org/LAkademy). Essa é a primeira edição desse evento e posso adiantar que não será a última.

Para quem não sabe o que pessoas colaboradoras de um projeto de software livre fazem em um evento desse tipo, segue uma breve explicação. Esses eventos tem por objetivo de estreitar os laços entre os colaboradores, além de propiciar um ambiente MUITO produtivo. Para isso, esses eventos são em uma casa/hotel/hostel/fazenda… onde as pessoas sonham com códigos, traduzem documentação para o café da manhã, escovam bits e jantam idéias de como podemos ser mais úteis à comunidade (e ao mundo, em consequência).

Como reunimos um grande número de colaboradores do KDE, conseguimos ter uma grande bolha de conhecimento onde sempre existe alguém que sabe resolver algum problema que estamos enfrentando, além é claro de conseguirmos ter melhores idéias quando pensamos coletivamente.

Mas bem, eu vou dar um breve relato dos acontecimentos aqui do LaKademy:
Eu cheguei na noite anterior ao início do evento (quinta) pois estava aqui na região resolvendo uns problemas de um outro projeto de pesquisa que participo. Rapaz! foi muito bom rever os amigos (alguns que não via a mais de 2 anos) e também conhecer novos amigos.

Durante o primeiro dia, me concentrei em colocar o plugin de árvores enraizadas no repositório do Rocs. Ele estava em um repositório paralelo e teve que sofrer algumas atualizações (o git estava bloqueado na universidade e devido a péssima qualidade do serviço de internet estamos sem internet em casa, isso significa que minha base de código estava desatualizada). Andreas Cord-Landwehr (CoLa) está trabalhando numa nova funcionalidade que permitirá ter camadas de grafos tanto em nível de arestas quanto de nós (Good work CoLa!), por isso precisei refatorar parte do código do plugin de árvores. Esse plugin já está no repositório e pode ser baixado e testado.

No segundo dia nós fomos para o FLISOL, Festival Latino Amricano de Instalação de Software Livre (http://www.installfest.net/FLISOL2012/Brasil/PortoAlegre) com a palestra (conversa/debate/fórum) “KDE, a vida, o universo e tudo mais” (muito obrigado pelo convite Luiz H. Rauber e aos patrocinadores pelo apoio ao Flisol). Nós ficamos quase todo o dia por lá, então foi legal que algumas pessoas vieram na sala que estavamos fazendo o sprint para saber mais sobre o KDE. Durante a palestra, nós conversamos com os presentes para responder dúvidas e acabar com mitos como de que o KDE é pesado, lento e instável. Nós percebemos que as pessoas tem essa visão que o KDE não bom baseado em uma versão muito antiga do KDE (4.0 que foi lançada em 2008). Para acabar com esse mito, foi apresentamos alguns dados para mostrar que o KDE evoluiu e que o que as questões de lentidão, instabilidade e consumo de recursos não são mais um problema nas versões atuais. Sábado foi basicamente isso, depois voltamos e codificamos mais um pouco.

No Domingo (terceiro dia) foi o dia de nos reunirmos para analisar como o KDE está na américa latina e quais são as ações futuras. Um dos principais pontos é como expandir nossos territórios :). Brincadeiras a parte, nós levantamos alguns pontos como por exemplo como nós como KDE podemos apresentar nossas soluções de software para as pessoas que nunca ouviram falar em KDE? ou como mostrar para um novato no mundo de desenvolvimento como o KDE pode facilitar a vida dele? Esses foram alguns pontos mais de provocação, mas já temos algumas linhas de ações que serão disponibilizadas pelo KDE-Brasil em breve.

A segunda foi um dia que teve um ótimo rendimento para os hackers do KDE, não tivemos reuniões nem pessoas chegando, ou seja, todos estavam imersos nos seus computadores. No Rocs consegui resolver alguns defeitos e implementar uma funcionalidade que impede o uso ferramentas específicas para uma estrutura de dados em outra (não faz sentido gerar um grafo completo se estamos trabalhando com um lista ligada, ou faz?).

A terça foi um dia de muitas caras tristes. Tudo tem um fim. Uma parte do pessoal foi embora de madrugada, então na segunda a noite já estávamos nos despedindo e já sentindo uma pontinha de saudade. No restante do dia fomos tentando trabalhar enquanto nos despediamos dos nossos amigos e anfitriões.

Para finalizar, eu vejo o LaKademy, como outros tipos de sprints, como sendo um ótimo evento para conhecer os novos colaboradores e também para unir ainda mais os colaboradores antigos. Em uma metodologia de desenvolvimento de software distribuido, esses encontros são, ao meu ver, funcamentais, deles saem novas ideias e novos projetos (fiquem de olho no liveblue.wordpress.com nos próximos dias).

Ainda estou aqui em Porto Alegre, mas já estou ancioso pelo próximo evento :)

Anúncios

[GSoC] Umbrello: Merging soc branch and trunk.

Hi!

After my last talk with my mentor, we decided that would be better to merge what I’ve doing until now in the trunk instead of to wait until the end of the project – that would be so much more work (even now, have been hard to get the new merged branch compiling and working). So for this, I made a branch from the trunk wich I am merging with the soc-umbrello-2011 branch.

The merge result (untill now) you can check here: http://websvn.kde.org/branches/work/umbrello-qgv-port/.

The idea is: if any change will be  done in the trunk, need to be done in the new branch as well.

Bye. Cya at Desktop Summit =)

 

 

Umbrello – some results [GSoC]

Hi Folk!

Here I am, after a while discovering that to work from home is not to everyone, that below your pillow you can find a engagement ring ( = and wondering why QMenu::popup needs receives like parameter type a QPoint instead of QPointF (Is it only in my silly mind that QPointF would make more sense? Am I forgetting something about Qt? Considering that QGraphicsView works with real coordinates).

I am working now in the widgets, so for now, you can see the BoxWidget and the ListPopUpMenu in the “new canvas”, bellow to the “old canvas”.

[youtube:http://www.youtube.com/watch?v=924c11Fwfmg%5D
The video is not so good…so please, check out the repository: http://websvn.kde.org/branches/work/soc-umbrello-2011/

After the evaluation time, my mentor, Jonathan Riddell, and I decided to use skype to improve our interaction :-) and my work.

And with this, my list-to-do just increases:

– make popup menu work
– implement drawing other types of widgets on class diagrams: boxwidget, class, interface..
– mouse press event
– drag and drop events

cya …

Desktop Summit

Umbrello in GSoC – just a quick update

What did I do?

I was working on the view (UMLView) and in the scene (UMLScene) and I tried to separate the methods between two classes, one only to handle the events in the scene (UMLScene) and another to handle the diagrams (Diagram). That’s what you can see in the repository now:
http://websvn.kde.org/branches/work/soc-umbrello-2011/

And untill now I am trying to reuse the code from the first try to port Umbrello.

What am I doing now?

To test the “new view” and the “new scene” I need the widgets. So I am working on the UMLWidget and the WidgetBase.

The next weeks:

I need to catch up my tentative timeline in the next two weeks. So I can finish the port, to work in new things for Umbrello ( work on better stereotypes supports and complete Undo/Redo support) and then start to write tests.

Umbrello in GSoC

My first week of work according to plan:

25 April – 08 May

* Community Bonding Period. (I talked a bit with some class mates of GSoC)
* Review Plan with Mentor. (I talked to Jonathan)
* Get instructions for the work and get started!

… and get used to work from home :)

Porting Umbrello:

I discovered that the best way to work would be to keep the old classes with the newly written ones together. Including calls for new methods in the same project so I can test the functionality of the new methods. Always comparing the new ones with the old ones.

The current result is Umbrello working with a new window showing the “new canvas”:

In this “view” with QGraphicsView I can test my new classes.

Using Squish to write tests:

To try to make the best decision regarding how to proceed to the port, which parts of code reuse, I did a few class diagrams (just a draft), with the main classes that I should work with, I thought it would be interesting to draw the diagram in Umbrello, and save some steps using Squish

I’m using the Squish Community Edition – froglogic Squish IDE 4.1.0-SNAPSHOT – available only to test KDE software – you can ask one by e-mail: squishkde@froglogic.com. The advantage was to get some practice with the Software (I also discovered and reported some bugs :/)

It is very easy to write tests with Squish, you can automate the tests or write scripts by hand. What is tiring is that when you record the tests, the system stores a table with the objects of your application. But if the the object is not in this table, the test stops and you must include the object or editing the table by hand, or run the application in Spy mode or simply write “test dummies”.

Read more here: http://doc.froglogic.com/squish/latest/all/

Some interesting links:

QObject x QGraphicsObject:
. http://stackoverflow.com/questions/4922801/adding-signals-slots-qobject-to-qgraphicsitem-performance-hit
. http://stackoverflow.com/questions/2292072/penalty-of-using-qgraphicsobject-vs-qgraphicsitem

Qt GraphicsView in depth:
. http://qt.nokia.com/developer/learning/online/talks/developerdays2010/tech-talks/qt-graphics-view-in-depth

QTestLib:
. http://doc.qt.nokia.com/4.7/qtestlib-manual.html#qtestlib
. http://qt.gitorious.org/qt-labs/qtestlib-tools

Next weeks:

Sprint 1: 09 May – 22 May

* UMLViewCanvas, LinePath, Circle, SubsetSymbol, SeqLineWidget, UMLView (Classes that implement the view for the diagrams, graphical representation of sequence lines and that represent diagrams)

You can see my complete workplan here: Umbrello UML Modeller QGraphicsView Port

I believe that like most students, my expectation with the GSoC is to LEARN a lot and perform a GOOD job. And even after that period CONTINUE contributing to the community:)

Umbrello no GSoC

A primeira semana de trabalho planejada:

25 April – 08 May

* Community Bonding Period. (Eu conversei um pouco com os meus colegas de grupo do GSoC )
* Review Plan with Mentor. (Conversei com o Jonathan)
* Get instructions for the work and get started!

…e se acostumar a trabalhar de casa :)

Portando o Umbrello:

A melhor maneira de trabalhar encontrada para realizar as alterações por partes foi manter as classes antigas e criar as novas classes em conjunto. Assim, incluir as chamadas para os novos métodos nos arquivos antigos mantendo o funcionamento dos dois e com isso testando o funcionamento dos novos métodos.

O resultado no momento é o Umbrello antigo funcionando com uma janela nova mostrando o “novo canvas”:

Nesse “view” já com QGraphicsView é que eu vou testar as minhas novas classes.

Usando o Squish para gravar testes:

Para tentar tomar a melhor decisão com respeito a como proceder para o port, que partes do codigo reaproveitar, eu fiz alguns diagramas de classe (apenas uns rascunhos), com as principais classes, as que eu devo trabalhar.

Com isso, eu achei que seria interessante desenhar o diagrama no Umbrello, e gravar alguns passos no Squish (eu to usando o Squish Community Edition – froglogic Squish IDE 4.1.0-SNAPSHOT – disponível apenas para testar softwares do KDE, voce pode pedir pelo e-mail: squishkde@froglogic.com) . A vantagem foi pegar alguma prática com o Software (também descobrir e reportar alguns bugs :/)

E é muito facil de gravar testes com o Squish, você pode automatizar os testes ou escrever os scripts na mão. O que é cansativo é que a medida que você grava os testes, o sistema armazena uma tabela com os objetos da tua aplicação. Mas se o o bjeto não estiver nessa tabela ainda, o teste pára e é necessário incluir o objeto ou editando a tabela no braço, ou executando a aplicação no modo Spy ou ainda simplesmente gravar testes ‘dummies’ onde você deve usar os objetos que você precisa no teste. Você pode tirar as suas próprias conclusões conferindo o link: http://doc.froglogic.com/squish/latest/all/

Alguns links interessantes:

QObject x QGraphicsObject:
. http://stackoverflow.com/questions/4922801/adding-signals-slots-qobject-to-qgraphicsitem-performance-hit
. http://stackoverflow.com/questions/2292072/penalty-of-using-qgraphicsobject-vs-qgraphicsitem

Qt GraphicsView in depth:
. http://qt.nokia.com/developer/learning/online/talks/developerdays2010/tech-talks/qt-graphics-view-in-depth

QTestLib:
. http://doc.qt.nokia.com/4.7/qtestlib-manual.html#qtestlib
. http://qt.gitorious.org/qt-labs/qtestlib-tools

Próximas semanas:

Sprint 1: 09 May – 22 May

* UMLViewCanvas, LinePath, Circle, SubsetSymbol, SeqLineWidget, UMLView (Classes that implement the view for the diagrams, graphical representation of sequence lines and that represent diagrams)

O meu plano de trabalho completo você pode ver aqui: Umbrello UML Modeller QGraphicsView Port

Acredito que, assim como a maioria dos estudantes, a minha expectativa com o GSoC é aprender MUITO e realizar um BOM trabalho. E mesmo depois desse período continuar contribuindo para a comunidade :)

FLISOL

No dia 09 de abril, toda a América do Sul organizou o evento anual conhecido como FLISOL (Festival Latino Americano de Instalação de Software Livre) . Eu ajudei a organizar aqui em Porto Alegre, onde nós tivemos algumas palestras e um install fest no Sindbancários (Sindicato dos Bancários).

A primeira palestra foi sobre o Web Mind uma ferramenta para gerar código a partir de uma linguagem natural. Sim, uma ferramenta que pode transformar português comum em código e banco de dados. Ele funciona muito bem e se você estiver curioso, pode conferir aqui: http://www.thewebmind.org/

Depois era nossa vez de falar – Jos e eu – uma palestra sobre openSUSE e KDE. Eu fiz a tradução ao vivo (uma hora no palco parece duas!) e fiz a minha parte em pt-br, é claro. Os ‘gatinhos’ (deem um aolhada nos slides) na apresentação de Jos teve o efeito habitual e conseguimos manter as pessoas acordadas apesar de ter que simplificar um pouco em relação ao público habitual. Jos reclamou que ele está acostumado a falar com as pessoas “que sabem a diferença entre up e downstream”, parece que ele vai ter que preparar novas apresentações com mais detalhes, voltada para newbies.

Tivemos outras ótimas palestras, por exemplo, sobre Arduino . Muitos DVD’s do openSUSE e folders foram distribuídos – teremos mais computadores deixando ‘a escuridão’ ;). Depois, no jantar, o pessoal comentou e reclamou o quanto as distribuições Linux têm se tornado muito fácil de baixar na internet e instalar, tirando a diversão (e desafio) de instalar o Linux em installfests.

E pela primeira vez no FLISOL, organizamos dois Dojos (um grupo trabalha junto em um desafio de programação) – usando JavaScript e Ruby. Os Dojos já acontecem mais ou menos uma vez no mês aqui em POA, mas os programadores ficaram felizes em ter uma distração a mais além das palestras habituais do encontro.

Com tudo isso, nós tivemos alguns bons resultados:

* 323 pessoas se inscreveram
* 120 pessoas presentes (o segundo maior FLISOL em Porto Alegre)
* Mais de 200kg de alimentos arrecadados (para dar a uma organização de apoio para desabrigados )
* 7 palestras técnicas
* 2 coding dojos

Você pode ver fotos aqui e aqui :)

bye. ;-)

FLISOL

On the 9th of april, all over South America people organize the yearly FLISOL (Latino American Festival of Free Software Installation). I helped to organize the local meet in Porto Alegre, just a few blocks from my home. We had a few talks and an install fest, all happening in the Sindbancários (Bank Employees Union).

The first talk was about the Web Mind discussing a natural language code generator. Yes, a tool which can turn common portuguese into code. It works very well and if you’re interested, check out: http://www.thewebmind.org/

After that it was our – Jos and me – turn to talk – an openSUSE and KDE talk. I would translate live (one hour in the stage looks like two!) and do my own part directly, of course. The kittens in Jos’ presentation had the usual funny effect and despite having to simplify things a bit compared to the usual audience, we managed to keep people awake. Jos complained he’s used to talking to people “who know the difference between up and downstram”, looks like he has to work a bit on his presentations-to-newbies skills.

A few other presentations happened like Arduino (with moving pieces of hardware, yay). While lots of openSUSE DVD’s and folders were given out only a few computers were ‘turned over from the dark side’. At the dinner afterwards we complained that linux distributions have become too easy to download and install, taking away the fun (and challenge) of installing linux at InstallFests.

And for the very first time at FLISOL, in other room, we had two Dojos (a meeting where a bunch of coders get together to work on a programming challenge) – using Javascript and Ruby. The Dojo happens every month or so, and the programmers were happy to see some talks and to program at FLISOL as it provided a welcome distraction from the usual meet.

With all that, we had some nice results:

* 323 people signed up
* 120 attending (the second biggest FLISOL at Porto Alegre)
* more than 200Kg of food collected (to give to a support organization for the homeless)
* 7 technical talks
* 2 coding dojos

You can check the pictures here and here :)

bye ;-)

Building a sexy Umbrello

I’m a big fan of Umbrello. It’s a Free Software graphical UML (Unified  Modeling Language) editor, one of the very few of it’s kind. Most UML tools are proprietary tools written in Java and Umbrello is written in C++/Qt and build on the powerful base of KDE  software. I realized how interesting Umbrello is when I noticed that the  most of my professors suggest proprietary tools or a generic diagramming program with few UML features to study UML at college class. Many companies use UML to help them quickly write applications and Umbrello is (as far as I know) the only Free Software tool which can do the code generation required for that!

Why UML is important?

Modeling is the designing of software applications before coding. Modeling is an Essential Part of large software projects, and helpful to medium and even small projects as well. (…) Using a model, those responsible for a software development project’s success can assure themselves that business functionality is complete and correct, end-user needs are met, and program design supports requirements for scalability(…)
http://www.omg.org/gettingstarted/what_is_uml.htm

Of course, It is not only my college that uses UML, there are a lot of company wich use UML tools in their development process, including  companies where I have worked and you can find some more examples here.

Umbrello

So having a Free Software UML editor is pretty important! And the Umbrello UML editor is really cool:

  • Automatic code generation (Ada, C++, C#, Java, perl, PHP, Python, Ruby)
  • Import classes and project (Ada, C++, IDL, Java, Pascal and Python only)

The bad news is that Umbrello does not receive a lot of love. It has been roughly ported to Qt4 and KDElibs4 but still uses a lot of Q3Canvas classes and has quite a few bugs.

Umbrello today

Umbrello

Working on Umbrello

Which is why I choose Umbrello for my conclusion work for the University. I would have to work on something anyway, why not pick something that matters? But as I combine my study (5 nights with each a different class) with a full-time job I don’t have a lot of time to do a proper job on Umbrello. My goal for the University is therefore pretty modest: I intend to finish the port of the canvas to QGraphicsView. I have identified about 30 classes which are related to the Q3Canvas and will have to be ported or replaced. I also intend to use tools for automated tests, write unit tests and and fix some bugs.

But there is more to do:
  • Better stereotypes supports
  • Complete Undo/Redo  support
  • Hyperlinks support
  • Reuse KDevelop analysis for code import
  • Bug fixing

GSoC 2011

So I have applied for a Google Summer of Code. Jonathan Riddel, the current maintainer of Umbrello, has said he would mentor me, which is really cool. So if I get this, I can quit my current job and finish the porting to QGraphicsView much faster. To ensure it’ll be a successful project, I’ve been quite modest in my goals for GSoC too: I only shortened my university plan to the GSoC timeline and added a few small things. If I finish the work for my conclusion work during the GSoC, I can be more ambitious for my University and add to the plan – I’m sure my professor won’t mind if I take on some feature work in Umbrello as well!

FLISOL 2011 em Porto Alegre – RS

O FLISOL (Festival Latinoamericano de Instalação de Software Livre) é o maior evento de divulgação de Software Livre da América Latina. Seu principal objetivo é promover o uso de software livre, apresentando sua filosofia, seu alcance, avanços e desenvolvimento ao público em geral.

FLISOL

Além de poder contar com uma ajuda para instalar o seu software livre (temos alguns DVD’s do openSUSE 11.3 para distribuir!), você poderá assistir palestras destinadas ao pessoal técnico e não-técnico e aos interessados em aprender mais sobre software livre (e mais sobre o KDE :).

Para os interessados em programar: podem participar de dois Coding Dojo que acontecerão em paralelo as palestras.

Também contaremos com micro-palestras na sala do IntallFest. Inscreva a sua micro-palestra no formulário: [http://goo.gl/ygHaG]

O evento deste ano conta com o apoio do SindBancários e Associação Software Livre (ASL.org).

A edição deste ano também terá uma função social: os participantes são fortemente incentivados a doarem 2kg de alimentos não-perecível que serão encaminhados para uma instituição de caridade (Cozinheiros de Plantão).

Confira a programação do FLISOL 2011:[http://goo.gl/gTgSv]

Inscrições: [http://goo.gl/prEHK]
Local: Sindbancários [http://goo.gl/mxnPo]
Data: 09/04/2011 (Sábado)
Horário: 13h15 – 18h30
Entrada: 2 Kg de alimento não-perecível

Mais informações: [http://goo.gl/gTgSv]

%d blogueiros gostam disto: