A Free Software magazine tem um excelente tutorial sobre como escrever drivers de dispositivo para Linux. Confira o artigo aqui.
Hoje, lendo uma mensagem da QT-Interest foi repassado um link para um artigo no site de Herb Sutter, Guru Of The Week, explicado as razões pelas quais é desnecessário checar por uma falha do “new” na maioria dos casos.
Embora seja um artigo interessante ele tem uma pequena falha ao afirmar que a alocação de memória no Linux sempre tem sucesso. A alocação de memória no Linux pode falhar se você tentar alocar uma quantidade de memória que for igual ou maior a quantidade de memória disponível menos a quantidade de memória usada pelo kernel para mapear a memória do processo.
Embora eu concorde com o autor de que a checagem no new é, certas vezes desnecessária, é importante checar quando você está tentando alocar uma quantidade razoável de memória, já que isso pode lhe permitir alocar uma quantidade menor ou liberar alguns recursos e seguir adiante.
Uma dica que, talvez, seja simples para os iniciados na QT, mas que me fez perder algum tempo raciocinando a respeito da solução …
O problema: navegar entre itens irmãos em um arquivo Xml, usando um objeto QDomElement. Por exemplo, você tem um arquivo Xml parecido com isto:
Acabei de ver no Planet KDE que um dos melhores tutoriais disponíveis sobre a QT foi atualizado e agora conta com uma versão para a QT 4. O tutorial ainda está incompleto, mas sem dúvida já consegue dar uma boa introdução sobre o desenvolvimento usando a QT.
Como sempre a Wikipedia nos presenteia com algo interessante: agora é essa lista maneira de Anti-patterns. Devo confessar que embora conhecesse algumas das práticas citadas não as conhecia com este termo. Alguns clássicos: Hard Code, Spaghetti Code, Magic Numbers e Software Bloat.
Bem diz o ditado que a necessidade é a mãe da invenção do conhecimento … Hoje, precisei fazer um programinha que, fornecido um usuário e senha, este retornava “OK.” se a senha estivesse correta ou “ERR.” caso ela estivesse errada (semelhante ao ncsa_auth, porém autenticando no shadow ao invés de um arquivo próprio). Para isso usei a funcão crypt(3). Como ela é um pouco “estranha” para usar e não contém nenhum exemplo decente, vou demonstrar rápidamente a sua utilização
Continue reading “Verificando a senha do usuário no sistema”
Se você, ao tentar gerar um arquivo de projeto do Visual Studio usando o QMake, obtiver uma mensagem semelhante a esta: “WARNING: unable to create output for”, é possível resolve-la setando a variável QMAKESPEC para win32-msvc2005.
Pegando o gancho do post anterior, aqui vai uma rápida explicação sobre o processo de compilação da Qt com os patches do Visual Studio.
Continue reading “Usando a QT OpenSource no Visual Studio (parte 2)”
Embora eu não programe com muita frequência no Windows, quando o faço prefiro usar o Visual Studio do que as outras alternativas disponíveis. Além de ser um ambiente mais confortável para programar, o Visual Studio conta com algumas caracteristicas bem interessantes, além de estar disponível gratuitamente no site da Microsoft.
O fato de a QT Open Source somente suportar o Mingw me deixou um pouco frustado até que eu topei com um port da Qt para Windows que resolvia exatamente esse problema. Entretanto, o site oficial do projeto somente detalha os procedimentos para compilar e instalar a versão 3. A página de downloads do projeto, porém, contém o patch para a versão 4. Uma vez que você tenha baixado e descompactado os fontes, será necessário aplicar o patch e recompilar a QT. Em breve, detalho o procedimento.
Se você, programador C/C++, está procurando um lugar para pegar algumas dicas, compartilhar conhecimento e muito mais sobre essa linguagem sensacional o Wiki C/C++ parece bastante promissor.