quarta-feira, 25 de maio de 2011

Dojo I

No penúltimo sábado (14/05/2011) conduzi o I CEFET/NF Coding Dojo, o primeiro Dojo de codificação do CEFET Nova Friburgo/RJ. O evento teve a seguinte configuração:

O evento, apesar de pequeno, foi bastante divertido. A maioria não conhecia TDD e ficou intrigada com a maneira de pensar e construir software dessa forma. Essa quebra de paradigma foi percebida de maneira bastante positiva. Todos se sentiram desafiados e tentados a pensar diferente, resolvendo o problema de um ponto de vista, até então, inusitado.

O desafio foi bem simples, até porque o objetivo era usar o desafio como pretexto para o aprendizado de TDD, como é praxe dos dojos. Foi usado o velho e bom Jokenpo (ou “Pedra, Papel e Tesoura”, como muitos conhecem).

codeblocks1

Foi usado C++ (que é presente na grade do curso técnico de Informática do CEFET) e a biblioteca Yaffut, que é simples, compacta e portátil, facilitando seu aprendizado e uso em diferentes ferramentas.

codeblocks2

Não tenho a intensão de publicar todos os slides que usei nesse Dojo aqui, mas deixarei o de TDD com C++. Como esse Dojo era mais “light”, só passei a Parte 1, que compreende o uso do Yaffut. Fica aí o conteúdo pra quem pretender experimentar… ;)

segunda-feira, 18 de abril de 2011

20 anos do GNU/Linux

Faz 20 anos que Linus Benedict Torvalds, despretensiosamente, criou o núcleo de um sistema operacional compatível com MINIX para rodar num Intel 80386 e o juntou com as ferramentas (também opensource) criadas pela GNU.

O que começou em 1991 só por diversão, tornou-se o S.O. mais usado em supercomputadores no mundo, e está começando a tomar conta do telefones celulares (vide Android e MeeGo). É verdade que caminha a passos lentos no mundo do desktop, mas o sistema tem hoje distribuições tão (ou mais) fáceis de usar que Windows e MacOS. Pena que muitas pessoas ainda não “descobriram” o GNU/Linux ou ainda tem certa resistência a mudanças. Mas aos poucos o pinguim vai tendo seu espaço, através dos grandes fabricantes que oferecem o sistema como alternativa gratuita em desktops, notebooks e netbooks, embutidos em televisores e aparelhos multimídia, em celulares e outros dispositivos portáteis.

A Linux Foundation lançou o vídeo comemorativo acima, mostrando de forma bem descontraída um pouco da história deste grande S.O.

Mas nem tudo são flores no GNU/Linux. Embora tenha evoluído bastante, faltam muitas aplicações, drivers e jogos, que fabricantes disponibilizam para outras plataformas. E talvez a grande quantidade de distribuições e a falta de recursos comuns entre elas seja seu grande “calcanhar de Aquiles”. O fato de haver inúmeras distribuições vai de encontro com o conceito de liberdade e gosto de cada usuário, mas o que pode agradar a muitos, prejudica o todo. Basta pegar como exemplo a instalação de um programa em linha de comando. Distribuições diferentes tem sistemas de pacotes diferentes, o que implica em usar comandos diferentes. Tudo bem que há interfaces gráficas para fazer o trabalho manual, mas mesmo elas, organizam os programas de forma diferente e possuem diferenças no uso.

É necessário um grande esforço nesse sentido se o GNU/Linux pretende ser o sistema operacional dominante em computadores. Nesse momento, a Google está passando exatamente por isso com seu Android. E por isso tem tomado medidas protetivas na liberação do código. É preciso tomar um grande cuidado com as ramificações e as incompatibilidades trazidas por elas.

sexta-feira, 1 de abril de 2011

GCC 4.6 está mais rápido

Como é comum em novas versões do GCC, a 4.6 está mais estável e rápida que a antecessora. Há, por exemplo, otimizações no uso de memória e melhoria de desempenho na geração de código intermediário. De acordo com as notas da versão, o tempo de compilação caiu cerca de 10%.

Também foram feitas melhorias no suporte experimental ao C++ 2011 e C1x, suporte à Ada 2012, Go (a linguagem criada pelo Google), entre outras. Há suporte a novos processadores e melhoria no suportes a sistemas operacionais (Android, MacOS, Windows, etc.). Em suma, uma atualização que vale à pena.

segunda-feira, 28 de março de 2011

C++ 2011 (ex C++0x)

O comitê da Organização Internacional de Padrões (ISO) aprovou as mudanças finais para o padrão C++0x durante seu último encontro em Madri, Espanha (de 21 à 25 de março). O documento ainda receberá as atualizações acordadas neste encontro e revisão de voluntários. A publicação foi acertada para este ano, ficando o padrão sendo conhecido como C++ 2011. O próximo encontro do comitê será de 15 à 17 de agosto em Bloomington, IN, EUA.

Para saber mais sobre o padrão, veja seu Wiki e as FAQ publicadas por Bjarne Stroustrup.