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

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:

Choqok: um cliente Twitter/Identi.ca

Hoje venho falar sobre mais uma aplicação feita para o KDE, não muito conhecida porém bastante útil. Após este post, pretendo variar um pouco meus assuntos no blog do KDE-RS. Há algum tempo atrás, costumava utilizar os serviços de microblog pela web, porém comecei a gostar de usar clientes desktop para este tipo de serviço, assim como um bocado de outros (Last.FM, Dropbox, GTalk, RSS). Achei bacana migrar para estes pequenos programas para me tornar um pouquinho menos dependente, do browser, tirar umas correntes e bolas de ferro :). Minha alegria foi saber que tem aparecido aplicativos para o KDE para cada um deles cada vez mais, diferente do que um tempo atrás, como bem me lembro, tinha de usar inúmeras aplicações GTK, hoje me limito a Firefox, GIMP e Inkscape. Com uma interface limpa e um ícone simpático, o Choqok começou como uma aplicação bastante simples em seus primeiros betas e somente com suporte a Twitter. Com o tempo foi evoluindo, ganhou suporte a algumas novidades no Twitter, como o twitpic, o retweet, reply e favoritos, suporte a sites com StatusNet, uma ótima integração com o kwallet (uso aqui), suporte a contas no Identi.ca. Há outros também como o Agora Escutando para diversos players (Amarok, Rhythmbox, Exaile…), suporte a Proxy e previews de vídeos no YouTube e Vimeo. Não posso dizer que uso todos, pois estaria mentindo, mas posso falar que uso um bocado deles. Uso microblogging para falar sobre meu projeto (http://twitter.com/zhockon/), e há coisas que não faria sentido eu utilizar, como o Now Listening. Bem, creio que o Choqok é uma aplicação que continuará a crescer a passos largos, frente à outros bons clientes, como o Gwibber e o TweetDeck.

Bem, é pela sua boa quantidade de recursos que se torna um item obrigatório na minha lista de programas para o KDE, toda vez que preciso instalar numa máquina nova. Tenho certeza de que ele atende às necessidades da maioria dos microbloggers, e por isso recomendo seu uso. Para download, ele muito provavelmente deve estar disponível nos repositórios da tua distribuição, a fácil alcance. Não tenho certeza, mas acho que ainda não há um port para outras plataformas. Bem, pelo menos não haverá muitas dificuldades na conversão, já que ele é um aplicativo que faz uso das bibliotecas do KDE, que estão sendo aos poucos portadas para Mac e para Windows. Para mais informações, basta acessar o site do programa (http://choqok.gnufolks.org/) que, aliás, é muito bem desenhado, tenho que dar os parabéns ao pessoal que cuida da aparência daquele site.

Amarok, Um Audio Player do KDE

Estava pensando nestes dias sobre algo para escrever como meu primeiro post aqui, e me lembrei desta boa aplicação que temos para o KDE. Apesar de não estar incorporado ao KDE Software Compilation (o oficial é o Juk - http://www.kde.org/applications/multimedia/juk/), ele não deixa de ser um exímio reprodutor de áudio, com um bocado de qualificações. O Amarok surgiu em meados de 2003, desenvolvido inicialmente em Qt3, para a terceira geração do KDE, com a ideia de se tornar uma alternativa mais avançada ao XMMS, player bastante popular para época (levinho e bem estável, ainda uso para máquinas mais velhas). O tocador foi evoluindo até alcançar a versão 1.4, onde conseguiu reunir diversas características bem interessantes e inovadoras. Dentre elas posso citar a busca pela capa de álbuns, playlists dinâmicas, suporte a scrobbling no Last.FM, informações sobre a banda na Wikipedia, busca de letra da música e suporte a iPod, além da inclusão da Magnatune Music Store, uma loja que comercializa música sem DRM.

A poucos anos a aplicação chegou à versão 2.0, da qual marcou a migração do player da plataforma KDE3 para a 4, o que acrescentou a integração com as tecnologias do mesmo, tais como Plasma e o Phonon, e bastante discussão pela internet afora à respeito da instabilidade, falta de alguns recursos presentes no 1.4, e a aparência totalmente remodelada. Não posso deixar de destacar que esta integração com o KDE4 trouxe bastante benefícios para o programa, como a possibilidade de uso dos motores multimídia Xine, MPlayer, GStreamer (esse me salvou aqui, tá funcionando que é uma beleza), e, recentemente, até o VLC, e a ótima integração com os plasmoids na área de trabalho, além de muitos outros aprimoramentos. Realmente, as instabilidades durante as versões 2.0 e 2.1 geraram um baita de um incômodo, e falo como usuário assíduo do Amarok, e sei bem como eram as quebras, os problemas com o Phonon. Bem, era triste, resumindo. O bom é que melhorou bastante na versão 2.2 e ficou excelente na 2.3, lançada no primeiro semestre desse ano. Parece que todos os recursos presentes na aclamada 1.4 encontram-se presentes na versão mais recente, com algumas melhorias e acréscimos: Jamendo (música livre), MP3Tunes (venda de músicas na nuvem) e Ampache (armazenamento de músicas online) são alguns serviços novos da Internet para o Amarok, bem como streams de rádios para diversos locais e podcasts. Para substituir as playlists dinâmicas, surgiram as biased playlists, numa tradução livre, listas tendenciosas, da qual geram listas de acordo com gênero, banda, dicas, entre outros. O desenvolvimento de plugins ficou também mais fácil a partir da segunda geração do Amarok, e também está sendo desenvolvido um port para Windows do aplicativo, já que antigamente ele só encontrava-se disponível para Unix. O port já se encontra usável e estável, pelo menos na vez em que testei no VirtualBox. Ficasse interessado pelo player? Basta entrar no site (http://amarok.kde.org/) para encontrar mais informações, e, para baixar, procure nos repositórios da tua distribuição, provavelmente terá um pacote desta boa aplicação do KDE.

%d blogueiros gostam disto: