Top 10: ferramentas de desenvolvimento para Linux/*BSD

Baseado nas ferramentas de desenvolvimento que eu mais uso no dia a dia, resolvi fazer uma lista “top 10” com as mais legais e úteis. Certamente a lista varia de acordo com o tipo de aplicação que você desenvolve, linguagem utilizada, etc. Esta lista é baseada nas minha realidade como desenvolvedor C/C++:

Continue reading “Top 10: ferramentas de desenvolvimento para Linux/*BSD”

O WGA e o desrespeito as licenças de software

Esse post pode parecer estranho, ainda mais vindo de um usuário Linux convicto, mas a verdade é que eu acho que a Microsoft tem toda razão em aplicar e requerer o uso do WGA (Windows Genuine Advantage). Os usuários e, em especial os brasileiros, tem uma grande desconsideração pelo trabalho envolvido no desenvolvimento de software. Seria ingenuidade acreditar que o WGA por si só possa diminuir consideravelmente a pirataria em torno de seus produtos. Do ponto de vista técnico, para os crackers, o WGA é apenas uma barreira a mais para ser crackeada e não impede que um cracker habilidoso gere um patch para contornar a verificação (como já pode ter sido feito).

Continue reading “O WGA e o desrespeito as licenças de software”

Site a prova de idiotas

“Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning” – Rick Cook .

Já viu um site a prova de idiotas? Não, conheça um aqui. Nós, programadores, desenvolvedores e engenheiros temos um longo caminho a percorrer até vencer a corrida contra o universo, com sua imensurável capacidade de produzir idiotas maiores e melhores.

* Programação atualmente é uma corrida entre engenheiros de software esforçando-se para construir maiores e melhores programas a prova de idiotas e o universo, tentando produzir maiores e melhores idiotas. Até agora o universo está ganhando.

Conio.h no Linux/*BSD

Provavelmente uma das maiores dúvidas dos novatos em programação, com algum background em desenvolvimento em DOS/Windows, e que começam a tentar desenvolver usando o GCC (quase sempre em Linux) é “aonde encontrar a conio.h“. Portanto, senhores, eu lhes respondo: vocês não encontrarão, por padrão, a conio.h no GCC – e, por consequência, no linux. Aqui vão 2 maneiras de implementar as funcionalidades da conio.h:

– Implementando-a diretamente usando ANSI Escape Codes.

– Através da ncurses.

Destas duas a mais recomendável é usar a ncurses, uma vez que é uma biblioteca madura, bem testada e com uma ampla gama de funcionalidades.

RPM Guide & Maximum RPM

Pessoalmente eu acho o formato RPM uma maneira bastante prática de distribuir softwares¹ para Linux, especialmente quando o aplicativo tem que ser distribuído em formato binário e não é possível distribuir os fontes. Se você, ainda não distribui seu software em formato RPM, dê uma lida no RPM Guide e no Maximum RPM e veja como é facil.

¹ Estou falando especificamente de software proprietário, de caixinha, que muitas vezes é distribuido em vários formatos absurdos e sem qualquer integração com o SO.

Gerando arquivos core de processos em execução

Eventualmente é necessário depurar um processo atualmente em execução sem que o processo seja iniciado através do gdb. Nem sempre é possível reiniciar um serviço atualmente ativo. Mas isso tem uma solução simples, o gdb permite que você anexe processos a ele, desta maneira permitindo gerar arquivos core, analisar a stack e um monte de outras coisas uteis. Este pequeno tutorial mostra como fazer isso.
Continue reading “Gerando arquivos core de processos em execução”

Tour visual pelos novos recursos do Vim 7.0

O site Br-Linux.org e o Slashdot publicaram um link para um tour visual dos novos recursos do Vim 7.0. Ainda que eu não use o Vim para editar código, já que considero o KDevelop mais prático, uso o Vim para editar praticamente todos os outros documentos que edito. Minha “feature”, nova, favorita é a inclusão do suporte a tabs.