Desktop Summit recap and GSoC update

Home is where the heart is After one week being at “home” (Brazil for a while) and getting back to the normal activities (college, clean up my place, cooking for myself..), now it is time to write something about the Desktop Summit and about the last weeks of GSoC.

Desktop Summit

It was awesome because:

Brazil!

  • It was really nice to see new brazilian people (good friends!) attending and doing good work for KDE. You can see pictures here.
  • Really good keynotes, like the Stuart Jarvis’s about “Why are we here? (Community Keynote)“. The graphics and the quotes in the slides were very intersting (they’ll be put on the website soon).
  • I got a Tablet in the “Intel AppUp Application Lab for Meego“! Good workshop and good Tablet =)
  • I attended in the BoF of KDE-Promo were Stuart Jarvis, Carl Symons, Frank Karlitschek , Thomas Thym and others discussed about the KDE birthday (october!) , about the KDE People from Latin America that should try to publish more news from these countries in the dot.kde.org (that’s important!) and that we need more documentation about how to get more companies “involved” with KDE. (you can follow the KDE Promo e-mail list to know more)
  • I attended in the Kolab: The Groupware for the Free Desktop BoF, where I figured out that I need to study about KDE PIM ;-)
  • I also figured out that Mai Tai is really dangerous – don’t drink more than two or you will
    try to hug and say how much you love people you never saw before!
  • I met Jonathan Riddellin person, my GSoC Mentor.

The only bad thing about Desktop Summit 2011:

  • The potatoes were awesome, but the most of the dishes were with pork! I don’t feel like eating pork meat for the rest for the year…

GSoC

The difficulties:

  • The lack of knowledge in C++/Qt. I didn’t have a lot of experience with C++/Qt when I started which made me lose some time with stupid errors, but I believe I wasn’t the only one with this problem in GSoC.
  • In the beginning I was afraid about the changes that I should do in Umbrello, how to do it properly, the best way to do it.
  • I took some time to communicate properly with my mentor. I shouldn’t feel so insecure about it.
  • I didn’t enjoy too much to work from home.
  • Concluding: my difficulties weren’t so much about the code, but more personal difficulties. I think I wrote a ambitious project which would wait more dedication from me and I didn’t give all the needed dedication. So I didn’t conclude the project in time.

What I did to overcome it:

  • Looking for help! Mainly from KDE people that I already knew in person.
  • With this help, I had good ideas about how to proceed properly with the port:  keep the old canvas working with the new canvas to keep comparing the code, using preprocessor directives in the old code and developing the new Umbrello in a different folder in the same project.
  • After the midterm evaluation I started to skype with my mentor.

The project for now:

The future:

  • These months in the GSoC gave me a good knowledge base to keep working in the Umbrello Port as my conclusion work for college.
  • We had a suggestion  how to change the documentation support works in Umbrello: http://people.canonical.com/~jriddell/tmp/umbrelloDoc.pdf
  • And soonish we will have the Qt 5, so we will have another port project for Umbrello (but as I was adviced, I should keep with the work to port for QT 4 because the differences to Qt 5 won’t be so big)
  • And there is others suggestions about how to make the Umbrello interface better and with more usability.
    (you can follow it in the uml devel mail list)
  • Migrate Umbrello to git.
  • Write tests using QtestLib.
Anúncios

Quando um amigo te chama de preguiçoso…

Hoje eu ‘acordei’ (tá bom eu já estava acordado, apenas estava aproveitando o calor das cobertas antes de tomar coragem e levantar) com uma ligação de um amigo de longa data me chamando de preguiçoso… Na hora fiquei meio assim por estar na cama ainda e ele já estar trabalhando, mas no fundo eu sabia que não era isso, então ele me explicou a situação toda.

 O Diego, esse meu amigo, está trabalhando na parte administrativa de uma Universidade e pediram pra ele desenvolver uma aplicação para substituir um sistema da contabilidade. Cerca de um ano atrás eu estive visitando-o e comentei sobre o Qt com ele, mas na época ele estava trabalhando com um sistema em Fortran+OpenGL e não cheguei a insistir (tah, eu não iria insistir, ia apenas comentar com ele a possibilidade) sobre ele reescrever o sistema usando Qt, pois ele tinha sido contratado para escrever tal sistema usando Fortran. Com esse novo sistema ele lembrou que eu tinha elogiado o Qt e foi dar uma lida. Após ele dar uma olhada em um livro sobre a versão 4.1 (atualmente o Qt se encontra na versão 4.7.3 com MUITAS funcionalidades extras, com planos para a versão 4.8 nos próximos meses e 5.0 no próximo ano) e achou tudo aquilo muito pronto, só necessitando connectar os sinais e slots, por isso ele me chamou de preguiçoso, por usar uma ferramenta com ‘tudo’ pronto. Devo dizer que fiquei lisongeado com esse comentário.
Além de ter ficado feliz por o emprego dele, também fiquei muito feliz por ele ter optado por essa tecnologia, não por que eu uso, mas por ela é uma GRANDE facilitadora do trabalho do programador. Porque se preocupar com comunicação entre os objetos quando o Qt possui Sinais/Slots? Por que se preocupar com diferentes implementações de banco de dados quando o Qt já provê suporte a eles usando plugins? Porque se preocupar em escrever a aplicação já na linguagem nativa (o que pode levar problemas de acentos e caracteres especiais) quando você pode usar o sistema de i18n e l10n (tradução e localização) já prontas e testadas?.Eu poderia escrever MAIS argumentos, mas isso seria muito extenso.
Moral da estória: Pequenos comentários podem influenciar em decisões futuras, então compartilhe experiências. Só cuidado para não ser extremista, vulgo Troll, que isso só afasta as pessoas.

=-=-=-=-=
Powered by Blogilo

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

Primeiros Passos no Qt

Após algum tempo sem postar no KDE-RS, estou de volta com um bom assunto para comentar. Partirei do princípio de que o pessoal já conhece o Qt e sabe o que ele é capaz de fazer. Andei trabalhando um bocado com o mesmo durante o mês de setembro, num trabalho de faculdade, mais especificamente. A professora havia liberado o uso de qualquer tecnologia, achei que seria interessante trabalhar com este framework. Já tenho experiência com C++ faz uns 7 meses, aproximadamente, e posso dizer que aprendi bastante durante este período. Ainda brigo um pouquinho com os ponteiros e os segfaults, mas, acredito que seja tudo normal. :) Já estava lendo e estudando há um tempo sobre o Qt, e, pelo que vi, achei muito interessante, tanto é que vivo divulgando ele pela faculdade. Eu comecei efetivamente a desenvolver nesse framework neste trabalho, tinha alguma noção das classes e módulos, porém muito pequena antes disso. Manipulei muito mais com o QtGui do que com o resto dos módulos disponíveis, pois só estava utilizando como toolkit para interface gráfica. Primeiro, comecei com um diálogo bem simples, algo do tipo “Hello World!”:

#include<QtGui/QApplication>
#include<QtGui/QLabel>
int main(int argc, char* argv[])
{
QApplication app(argc,argv);
QLabel label(“Hello World!”,window);
label.show()
return app.exec();
}
Não imaginei que seria tão fácil assim. Tenho poucas experiências em interfaces gráficas, um pouquinho de GTK+, quase nada, e o Swing, do Java, do qual prefiro manter distância, da linguagem e do toolkit gráfico. :) Claro, isso reproduz uma aplicação em Qt extremamente simples, nem layouts e botões tem na configuração desta janela, porém, já é um bom começo. Acho que no dia que criei este pequeníssimo programa, eu demorei mais fazendo o arquivo de configuração do CMake do que o próprio código, devido a incômodos com as headers do Qt, pois no exemplo mostrava sempre #include<QtGui>, e na prática nunca funcionava, até que me dei conta de que as aplicações nos exemplos eram compiladas pelo qmake. Baita mancada minha, mas, ainda bem, não me custou um dia inteiro, acho que só uma tarde, menos mal. :) Agora, vamos dar algumas incrementadas neste programa em Qt, para deixar com um visual, digamos, mais interessante:
#include<QtGui/QApplication>
#include<QtGui/QLabel>
#include<QtGui/QPushButton>
#include<QtGui/QVBoxLayout>
int main(int argc, char* argv[])
{
QApplication app(argc,argv);
QWidget *window = new QWidget();
QLabel *textone = new QLabel(“Just another text.”,window);
QLabel *texttwo = new QLabel(“Hello World!”, window);
QPushButton *ok = new QPushButton(“OK”,window);
QVBoxLayout *vbox = new QVBoxLayout();
vbox->addWidget(textone);
vbox->addWidget(texttwo);
vbox->addWidget(ok);
window->setLayout(vbox);
window->resize(320,240);
window->show();
return app.exec();
}
Aqui introduzo dois conceitos bastante importantes ao trabalhar com esta toolkit gráfica. Todos os widgets podem respeitar um determinado layout, bastando apenas eles estarem ligados a este; o mesmo serve para o widget principal, seja ele um QWidget, QMainWindow ou um QDialog. Resumindo, um widget é o componente básico da janela, e um layout é um conjunto deles. Podemos também ter vários layouts, variando de horizontal a vertical, dependendo do que se deseja desenhar de interface gráfica. O normal é sempre ter de um a três na vertical, e vários na horizontal. Pelo menos é assim que sempre faço. Acredito que tenha conseguido pelo menos introduzir o pessoal que anda interessando em programar em Qt/C++, e incentivá-los a desenvolver nesta ótima tecnologia, que possui uma boa documentação e uma estrutura extremamente organizada, além de ser livre (LGPL) e multiplataforma, o que torna-o uma excelente opção, de desenvolvedores independentes a empresas. Pretendo falar também um pouco de sinais e slots, muito importantes dentro do Qt, especialmente para tratamento de eventos, mas, isso é assunto para outra hora. Ficasse interessado? Seguem os links de documentação do Qt e de exemplos, muito úteis para quem está começando a programar neste ótimo framework:
Ah, e também não posso me esquecer do Qt Assistant, que me ajuda nas (diversas) horas em que estou off-line. Ele está incluso no Qt SDK. Para baixar o Qt, conforme teu gosto, SO, ou licença, basta entrar no seguinte site:

Palestra e Mini-curso na SACTA 2010 – Alegrete

Dia 22 e 23 apresentei uma palestra e um mini-curso durante a semana acadêmica da UNIPAMPA Campus alegrete, a SACTA 2010.

A palestra foi apresentada dia 22 com o título “Como trabalhar no Google usando SL?” onde eu ‘evangelizei’ uma breve visão sobre o que é SL, como surgiu, quais seus objetivos e sobre o projeto GSoC do Google. Foi bem interessante mostrar o mundo do SL para algumas pessoas que não faziam idéia do que era isso. essa primeira parte está nessa apresentação SL na google onde apresentei o SL e como participar do GSoC e de comunidades SL. No final, usando essa outra apresentação(kde-para-iniciantes, baseada na palestra do Sanddro Andrade) eu falei como nós do KDE-RS podemos ajudar as pessoas a começar a trabalhar no SL, ministrando mini-cursos/Palestras, sprints de programação/tradução, claro, tudo isso usando o KDE :)

Na Quarta, dia 23, ministrei um mini-curso de Qt, utilizando o material do Qt in education (http://qt.nokia.com/services-partners/qt-in-education/)que é muito bom, mas um pouco avançado para quem conhece pouco de C++/OO, que era o caso do mini-curso onde tinha pessoal do início do cusrso. Então foquei em mostrar o Qt, pulando alguns slides das apresentações e mostrando no mini-curso exemplos bem simples usando o designer. Mostrei claro alguns exemplos, como o mini navegador em 5 min. e com 5 linhas de código. (isso sempre deixa as pessoas perplexas :) ) e o Qt demos onde eles puderam ver outras funcionalidades do Qt em ação.

No final do mini-curso, reforçei o interesse do KDE-RS em ajudar as pessoas a começar com SL, Qt e KDE, e que podemos  dar palestras/mini-cursos e sprints para os interessados. Assim, para quem  quiser mais informações sobre o grupo, assinem nossa lista http://groups.google.com.br/group/kde-rs e fiquem de olho no nosso rss do blog.

Nota: Essa é a 3ª e 4ª palestras que o KDE-RS apresentaram somente no mês de junho, ta bom né :) e o mês ainda não acabou

Palestra ULBRA Cachoeira do Sul 2010

Ontem foi um dia corrido, com direito a boas horas de viagem entre cidades, mas foi muito bom.
Fui em Cachoeira do Sul na ULBRA palestrar na semana acadêmica do curso de Sistemas de Informação. Falei sobre desenvolvimento de aplicações gráficas para linux.

Na palestra foquei um pouco no básico, indo de ferramentas utilizadas (GCC, Debugger, IDE, essa parte básica mesmo), passando poucos exemplos de códigos (tinha pessoal iniciante) e entrando no Qt usando os slides do Qt in Education e apresentei pequenos exemplos do Qt. Pelo que percebi (e pelo feedback recebido) o pessoal ficou MUITO impressionado com o exemplo de browser em Qt com poucas linhas de código).

Eu ia utilizar a apresentação do Sandro do KDE para Iniciantes, mas pela falta de tempo falei apenas  uma visão geral do KDE e sobre os eventos do KDE. No final convidei a todos para conhecerem o KDE e mostrei os caminhos (listas de e-mail, irc e alguns blogs/sites), além defalar da falta de um integrante do KDE-RS naquela região.

O que eu gostei foi do interesse dos professores pelo KDE-EDU. Na ULBRA existem cursos voltados para o lado de ensino básico onde ferramentas de auxilio na aprendizagem seriam muito bem vindas.

Para quem quiser, aqui está o arquivo da apresentação (Apresentação ULBRA 2010).

Assim que me passarem as fotos posto aqui também.

Qt, KDE, Akademy-BR e amigos trolls que não deixam a gente ficar quieto =D

De volta a trollagem dos amigos (que bom né?) …o Tomaz, me incentivava a colaborar com o KDE, ainda mais que me interessava por aprender linguagens como C++. E no final de semana do dia 19 de abril, ele deu um curso na USP de Qt (framework para programação em C++).

Curti muito, sem falar que o Tomaz é ótimo professor, ele conseguiu esclarecer minhas dúvidas sobre listas, explicando em 15 minutos o que o meu professor não conseguiu explicar o mês todo de aula. Lindo isso!

Curso de Qt

Curso de Qt

E fiquei impressionada: você sabia que o Skype foi desenvolvido com Qt?
Que o KHTML(escrito em C++) é a base do Webkit?
E o Webkit é a engine do Chrome e Safari.

Empresas como o Google (talvez você não conheça…), Disney, e é claro a Nokia (que mantém o Qt sob licenças open source – LGPL e GPL).
E é claro, é possível desenvolver aplicações para o KDE em Qt.
E celulares, como o N900, rodam Qt também!

/*a frase abaixo é besta, em qualquer linguagem tem isso*/
Além de você poder desenvolver “no braço”, dá para usar o Qt designer para montar a interface. O que é muito prático para se trabalhar com os componentes nativos do framework e é claro, você também pode criar um do zero.

Se você se interessou, tem mais aqui e aqui.

Isso sem falar no incentivo do KDE pra galera que se disponibiliza a melhorar os projetos do KDE!

Agora em abril do dia 08 ao dia 11, pessoal do KDE vai participar do Akademy-BR, o primeiro Akademy no Brasil.
Para entender melhor, confere aqui.

Onde vamos passar 3 dias hackeando no KDE e no meu caso de newbie, aprendendo muito também. Essa é a minha expectativa para o próximo final de semana: colar as placas e colaborar para que mais pessoas tenham vontade de usar/experimentar o KDE.

Vamos sair do Akademy com melhorias prontas para alguns projetos, como o Rocs e o Amarok.

E como saiu o Akademy no Brasil? Devido ao apoio do KDE e de pessoas como o Sandro e o Tomaz, que já desenvolvem para o KDE a algum tempo e que ainda ajudaram na organização.

O KDE também financiou as passagens e a hospedagem dos 30 participantes. Que barbada não? Que nada, vão ser 3 dias de muito trabalho…e depois cada participante deve dar continuidade aos projetos.
A interação entre o pessoal também vai ser importante.

E que venha o 1º Akademy-BR e muitos outros mais.

I am going to Akademy-BR

%d blogueiros gostam disto: