TDD: Testando código C/C++ com Gcov

No post anterior (TDD: Testando código C/C++ com Boost.Test), explicamos como se cria uma suíte de testes com a biblioteca Boost.Test. Muito útil para testar a funcionalidade correta do código.

Neste post mostramos como utilizar o Gcov para verificar se todo o código é executado pelos testes. Criamos uma biblioteca simples e um conjunto de testes para ela.

Ferramentas de code coverage (cobertura de código) como Gcov são muito utilizados para “Desenvolvimento a partir de testes” (TDD – Test Driven Development).

No TDD desenvolvemos os códigos e seus testes em paralelo, para verificar que o código funciona e, no futuro, poder verificar se alguma mudança no código tenha causado um bug.

A análise da cobertura de código auxilia no TDD, identificando partes do código que não estão sendo testadas por completo.

Continue lendo “TDD: Testando código C/C++ com Gcov”

TDD: Testando código C/C++ com Boost.Test

Neste post mostramos como utilizar a biblioteca Boost.Test para testar seus códigos. Podemos compilar a biblioteca junto aos testes, sendo também possível utilizar uma versão pré-compilada para melhorar o tempo de compilação.

Bibliotecas de teste são muito utilizados para “Desenvolvimento a partir de testes” (TDD – Test Driven Development).

No TDD desenvolvemos os códigos e seus testes em paralelo, para verificar que o código funciona e, mais importante, no futuro poder facilmente verificar se alguma mudança no código tenha causado um bug.

Continue lendo “TDD: Testando código C/C++ com Boost.Test”

initramfs e fsck: Ubuntu Linux não inicia

O Ubuntu Linux não inicia e aparece um tal de initramfs! O que fazer?

Um computador meu estava parado por uns tempos, estava com algum problema. Travava, reiniciava do nada… De repente não ligava mais.

Então resolvi reviver ele: Levei na manutenção, deram um jeito nele e fizeram ele iniciar. Bastava remover um dos pentes de memória RAM, que estava com problemas. Agora ele liga e a tela do bootloader do Ubuntu Linux aparece.

Terminal com initramfs

Mas quando tentamos iniciar o sistema, em vez da interface gráfica, aparece o terminal: uma tela preta com algumas linhas escritas, aguardando algum comando:

(initramfs) _

No meio do texto temos escrito:
“The root filesystem on /dev/sda2 requires a manual fsck

Tradução livre:
“A raiz do sistema de arquivos em /dev/sda2 requer um fsck manual”

FSCK (File System ChecK) é uma ferramenta que chega e corrige o sistema de arquivos.

Depois de tantos travamentos e reinicializações inesperadas causadas pelo pente de RAM defeituoso, o sistema de arquivos ficou corrompido. O bootloader está pedindo para manualmente executarmos a verificação do sistema de arquivos.

Como corrigir

Para fazer isso executamos o seguinte comando:

fsck -C -V /dev/sda2

Um simples “fsck /dev/sda2” já resolveria, mas queremos ver o progresso (-C) e ver as explicações do que está sendo feito (-V), então adicionamos essas duas opções. Para ver as opções digite “fsck –help”.

Durante a execução do comando, algumas vezes (ou muitas vezes se o bicho estiver feio) aparece uma mensagem, aguardando interação, perguntando se alguns arquivos podem ser apagados, pois estão com algum defeito, não possuem referência ou alguma outra coisa. Basta apertar ENTER para confirmar e ele será apagado.

Coloque um peso na tecla caso se incomode em apertar ENTER muitas vezes.

Depois de algum tempo… O programa termina e basta reiniciar o computador com o comando

reboot

E agora?

O sistema provavelmente vai iniciar normalmente. Recomendo fazer um backup dos seus dados imediatamente e caso acontecer novamente também reinstalar o sistema.

Se ainda assim não iniciar, você vai ter que usar uma “versão live” do Ubuntu Linux para fazer um backup dos seus dados e então reinstalar o sistema.

Se você tem este problema, do Ubuntu Linux não iniciar e mostrar a tela do intramfs, esse post vai ajudar a solucionar.

Calculadoras e coordenadas polares

Algo que poucas pessoas sabem é que algumas calculadoras científicas possuem a função de converter coordenadas polares em coordenadas retangulares.

Isso é muito útil quando convertendo números complexos entre coordenadas polares e retangulares!

Também para agilizar cálculos do teorema de Pitágoras!

Esta é uma funcionalidade bastante obscura que algumas calculadoras possuem. Mas muito acessível e fácil d usar.

Como exemplo vamos utilizar a calculadora HP 9s. Veja na esquerda os botões [a] e [b] e, em acima deles, as segundas funções R→P e P→R.

Calculadora HP 9s pode converter de coordenadas polares para coordenadas retangulares
Calculadora HP 9s pode converter de coordenadas polares para coordenadas retangulares

Continue lendo “Calculadoras e coordenadas polares”

Calculadoras e números complexos

Algo que poucas pessoas sabem é que algumas calculadoras científicas possuem um modo complexo. Não complexo no sentido de “difícil de usar”, mas no sentido de “usando Números Complexos”.

Esta é uma funcionalidade bastante obscura que algumas calculadoras possuem. Não é muito intuitiva mas facilita muito para quem utiliza números complexos o tempo todo.

Como exemplo vamos utilizar a calculadora HP 9s. Na esquerda, dê uma boa olhada logo abaixo da tecla [2ndF] (segunda função), está escrito CPLX: o Modo Complexo!

A Calculadora HP 9s pode calcular com Números Complexos
A Calculadora HP 9s pode calcular com Números Complexos

Continue lendo “Calculadoras e números complexos”

Valores comerciais de resistores

Não é possível comprar resistores com qualquer valor. Existem apenas certos valores comerciais de resistores.

Por exemplo, podemos comprar resistores 1 kΩ ou 1.1 kΩ, mas não 1.05 kΩ.

Vejamos a seguir quais são os valores comerciais de resistores e como escolher o valor corretamente.

Veja a lista de posts do Curso Circuitos Elétricos em sequência.

Continue lendo “Valores comerciais de resistores”

Código de cores de resistores

O código de cores de resistores permite identificar o valor da resistência e a tolerância do componente sem a necessidade de utilizar um ohmímetro.

Vejamos a seguir quais são as cores, os números correspondentes a elas e como realizar a leitura da resistência através do código de cores.

Veja a lista de posts do Curso Circuitos Elétricos em sequência.

Continue lendo “Código de cores de resistores”

Tensões de linha e fase de carga ESTRELA

Neste post falaremos da carga estrela, também chamada de carga ípsilon (Y), onde as cargas estão ligadas formando uma estrela com um ponto central, como mostra a figura abaixo.

Tensões de linha de carga estrela trifásica
Tensões de linha de carga estrela trifásica

Este post é de certa forma uma continuação do post anterior Correntes de linha e fase de carga DELTA | Circuitos Elétricos, onde discutimos as tensões e correntes de linha e de fase de uma carga delta trifásica. Lá as tensões de linha e de fase iguais, mas correntes de linha e de fase diferentes.

Para carga estrela, no entanto, ocorre o oposto: as correntes de linha e fase são iguais, mas as tensões de linha e fase são diferentes.

Vamos discutir como podemos calcular as tensões de linha a partir das tensões de fase e também como calcular as tensões de fase a partir das tensões de linha.

Continue lendo “Tensões de linha e fase de carga ESTRELA”

Correntes de linha e fase de carga DELTA

Circuitos trifásicos é um dos tópicos mais interessantes de circuitos elétricos de corrente alternada. Há dois tipos de carga para circuitos trifásicos: carga delta e carga estrela.

Neste post falaremos da carga delta, também chamada de carga triângulo, onde as cargas estão ligadas formando um triângulo, como mostra a figura abaixo.

Correntes de linha de carga delta trifásica
Correntes de linha de carga delta trifásica

Este post terá um post em sequência: Tensões de linha e fase de carga ESTRELA | Circuitos Elétricos, onde discutiremos as tensões e correntes de linha e de fase de uma carga estrela trifásica. Lá as tensões e correntes de linha e de fase funcionam de forma diferente.

Vamos discutir como podemos calcular as correntes de linha a partir das correntes de fase e também como calcular as correntes de fase a partir das correntes de linha.

Continue lendo “Correntes de linha e fase de carga DELTA”

Transformador delta aberto

Muitos livros de Máquinas Elétricas expõem a possibilidade de uso de transformadores “delta aberto”, “open delta” ou V-V e dão a limitação de potência dessa ligação que é 1/√3 ou 58%.

Apesar disso não é explicado de forma clara de onde vem esse valor específico. Também não fica bem esclarecido ao que essa proporção dada está relacionada.

Isso é importante pois há dois problemas ligeiramente diferentes a serem resolvidos com essa discussão. E eles têm duas respostas ligeiramente diferentes. O primeiro é um transformador trifásico que perde um enrolamento. O outro é o caso de dois transformadores monofásicos que alimentam uma carga trifásica.

Por isso, nesse post falaremos sobre esses casos específicos do funcionamento de transformadores.

Transformador delta e delta aberto
Transformador delta e delta aberto

Como exemplo, na figura acima vemos dois secundários de transformadores. O primeiro está ligado em delta (ou Δ). O segundo está ligado em delta aberto (ou V).

Vejamos os casos onde um transformador trifásico opera no modo delta aberto:

Continue lendo “Transformador delta aberto”