Logging
Introdução Um log de erros é um arquivo de texto que registra a cronologia de eventos que ocorrem em um sistema operacional, aplicativo ou serviço. Esses registros são essenciais para monitoramento, auditoria, segurança e correção de problemas. Desde o momento em que o sistema operacional é iniciado, os primeiros logs começam a ser gravados, registrando informações como data, horário, carregamento do kernel e possíveis erros ou ações excepcionais executadas. Os logs de erro são valiosos para desenvolvedores e administradores, pois fornecem insights sobre falhas e exceções durante a execução de programas, permitindo a identificação e resolução de problemas....
Ponteiro Nulo - NULL e nullptr
Introdução Neste post eu irei explicar o que é um ponteiro nulo no C++ e se devemos usar o NULL ou nullptr? TL;DR; use a palavra-chave nullptr no C++11 ou posterior, mesmo que o NULL seja um typedef para o nullptr. Até o C++11 o ponteiro nulo era usado como um valor igual a 0 (ou NULL, sempre #definido como zero) nem era um tipo de ponteiro. Isso pode levar a alguns problemas em alguns casos, para isso o tipo std::nullptr_t foi introduzido....
Escolha do Sistema Operacional
Introdução Quando se trata de Sistema Operacional (SO) para desktop, como engenheiro e funcionário do mundo corporativo, a escolha sempre foi o Windows, pela compatibilidade com os softwares utilizados e o controle da TI. Mas para programação, o Linux pode ser uma alternativa em muitos casos, mas em empresas o Departamento de TI normalmente liberará somente o Windows. Já para servidores este cenário é um pouco diferente… Pois para desenvolvimento, necessitamos dos últimos pacotes ou de muitos drivers....
Não use o ifconfig
Por quê? Em uma resposta do website Server Fault de 2012, “Eu devo parar de usar o ifconfig?”. A resposta é a seguinte: O comando /bin/ip já existe há algum tempo. Mas as pessoas continuam usando o comando antigo /sbin/ifconfig. Sejamos claros: o ifconfig não irá desaparecer rapidamente, mas sua versão mais recente, ip, é mais poderosa e eventualmente irá substituí-lo. A página man do ip pode parecer intimidante no início, mas depois que você se familiarizar com a sintaxe do comando, será uma leitura fácil....
Enviar Sinal para Pthread ou Processo
Introdução Se você deseja enviar um sinal para um thread, você pode usar pthread_kill(), embora não seja semanticamente correto, a página man7 afirma: A função pthread_kill() envia o sinal sig para thread, um thread no mesmo processo que o chamador. O sinal é direcionado de forma assíncrona ao thread. Se sig for 0, nenhum sinal será enviado, mas a verificação de erros ainda será realizada. Vivo ou Morto? Thread Um código para obter o sinal de uma thread e verificar se a thread está “viva”:...
Um Estudo sobre o Tempo
Introdução O tempo parece tão simples e trivial, mas ao mesmo tempo um conceito complexo e relativo. Desde muito tempo atrás o estudo sobre o tempo é realizado, na faculdade fiz um resumo do estudo de Aristóteles sobre o tempo, e até os dias de hoje as pessoas ainda debatem sobre o estudo dele e de muitos outros que vieram posteriormente. Mas e no C++? Neste post explicarei um pouco sbre a biblioteca STL do C++ std::chrono, num post anterior expliquei sobre o tempo no Linux....
Quebra de Texto num Widget de Table usando QWidget
Introdução O word wrapping automático do Qt utilizando alguns flags funcionava corretamente na classe QTableWidget, porém outras propriedades não eram atendidas ao usar a classe padrão, para personalizar e contornar os delegates podem ser usados. Pela minha experiência, o QTableWidget é muito limitado, para um widget tão complexo como a tabela, dificilmente você criará uma classe que atenderá à todos requisitos de tabelas de um projeto inteiro e eventualmente você precisará criar um delegate para implementar funcionalidades personalizadas....
Distância entre Dois Pontos de uma Esfera
Geodésia Segundo a Wiki: O estudo de geodésias em um elipsoide surgiu em conexão com a geodésia, especificamente com a solução de redes de triangulação. A figura da Terra é bem aproximada por um elipsoide oblato, uma esfera ligeiramente achatada. Uma geodésia é o caminho mais curto entre dois pontos em uma superfície curva, análogo a uma linha reta em uma superfície plana. A solução de uma rede de triangulação em um elipsoide é, portanto, um conjunto de exercícios de trigonometria esferoidal (Euler, 1755)....
QML Singleton
Introdução No QML muitas vezes é necessário o acesso global à variáveis e funções, isso pode ser alcançado com um padrão de projeto Singleton. Um exemplo é a configuração global de um software, que além de ser acessado por qualquer janela, deve também salvar os dados de configuração em algum arquivo. O Singleton é um padrão de projeto criacional que permite a você garantir que uma classe tenha apenas uma instância, enquanto provê um ponto de acesso global para essa instância....
Tempo no Linux
Introdução No POSIX o time.h pode ser utilizado ou a chamada de sistema time(). Este post falará brevemente com alguns snippets sobre como alterar a data e hora no Linux POSIX. Estruturas de Tempo O time_t é o tipo aritmético capaz de representar tempos. Embora não esteja definido, esse é quase sempre um valor integral (mas pode ser floating point) que contém o número de segundos (sem contar os segundos bissextos) desde 00:00, 1º de janeiro de 1970 UTC, correspondente à Era POSIX....