Nesta página a microsoft disponibiliza um guia de migração de aplicações Unix para Windows. Embora eu ainda não o tenha completamente, acredito que recursos deste tipo são de grande valia para aqueles que, como eu, desenvolvem e portam aplicações entre esses ambientes.
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”
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”
“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.
O SQLite, até a versão atual – 3.3.8, não suporta integridade referencial. Embora ele aceite a sintaxe, ele irá ignorar a checagem de IR, entretanto a Wiki do projeto tem um exemplo demonstrando como implementar integridade referencial através de triggers (POG detectado!).
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.
Assim como o BR-Linux e o Bruno Alves estou apoiando o Rec6. Gostei do Rec6, embora eu não seja um fã do digg.com. O blog do Bruno Alves tem a dica para adicionar o link do Rec6 no WordPress e não tive problemas em adicionar o link no template do site, mesmo conhecendo pouquíssimo PHP e HTML.
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.
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”
Publiquei, na Wiki C/C++, uma listagem com os comandos básicos do GDB. A listagem está disponível aqui.
(Atualizado: corrigi os links)
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.