No começo de minha carreira eu tive o prazer de trabalhar com um técnico de computadores, senior, na antiga Burroughs Eletrônica. Isso foi nos idos de 1985 e muitos de vocês sequer pensavam em nascer kkkk.
Então, ele tinha um bordão que utilizava quando a gente se enrolava em consertar os mainframes que era o seguinte:
“Quando tudo o mais falhar, siga o manual”
Nelson Zart
Pois é. hoje me lembrei dele em dois momentos.
Um deles eu estava configurando o Apache Directory Studio para acessar o LDAP do Google Workspace Enterprise e tive de configurar o Stunnel seguindo o manual e em outro caso, meu colega estava se batendo para fazer o agente GLPI subir o status no servidor do GLPI.
Em ambos os casos, só conseguimos resolver esses problemas após lermos a documentação e proceder com a configuração, conforme indicado nos respectivos manuais.
Nada de fórum, Stack Overflow e adivinhação. Definitivamente foi a leitura do manual que resolveu o perrengue.
Se você precisa que um dispositivo de rede sempre obtenha dinamicamente o mesmo endereço de IP cada vez que for ligado, saiba que é possível fazer essa configuração direto no equipamento que fornece o serviço de DHCP.
Utilizar esse tipo de configuração pode ser interessante para impressoras, servidores, centrais telefônicas e demais equipamentos, que se mudarem o endereço de IP, as coisas podem eventualmente vir a parar de funcionar e também serve para evitar que usuários finais fiquem configurando endereços errados nos equipamentos.
Para instalações domésticas, normalmente quem fornece o serviço de DHCP é o roteador da casa ou do pequeno escritório.
Como é que faz?
Basta configurar no roteador, que um determinado endereço de IP seja associado com o endereço de MAC Address do equipamento que desejamos fixar seu endereço de IP.
Como exemplo, mostro uma fonte de alimentação que pode ser acessada pela rede, mas o mesmo é válido para outros equipamentos, incluindo impressoras.
O endereço que eu quero fixar para ela é 192.168.2.101
Eu entro nas configurações de rede da fonte de alimentação e procuro pelo endereço de MacAddres do equipamento conforme destacado com a seta.
Note também que o equipamento está configurado com o DHCP on, para sempre pegar o endereço de IP do provedor DHCP, que no caso é o roteador de casa.
Ainda conforme a foto acima, o MacAddress da fonte de alimentação é 00:27:00:00:15:26 e o DHCP ficou ligado, assim a fonte sempre irá se configurar automaticamente.
Configurando o roteador:
No roteador, temos que garantir que o serviço DHCP nunca irá utilizar o endereço que eu quero atribuir para a fonte.
Isso é feito, informando para o servidor DHCP qual é o endereço inicial que ele deve trabalhar.
No meu caso e conforme indicado abaixo, o meu roteador vai fornecer endereços de IP para os equipamentos da casa, a partir do endereço 192.168.2.150. Tudo o que vier abaixo disso, de 192.168.2.1 até 192.168.2.149, embora funcionais, são endereços reservados.
Conforme dito acima, irei utilizar o endereço 192.168.2.101, que é um endereço que é menor que o endereço inicial, portanto trata-se de um endereço reservado.
O servidor DHCP nunca irá atribuir esse endereço para qualquer equipamento, a menos que isso seja explicitamente indicado.
Toque final:
Para explicitamente indicar ao roteador para quem ele deve atribuir o endereço de IP 192.168.2.101, conforme figura abaixo, basta ir na aba “Reserva de Endereço” e associar o MacAddress da fonte de alimentação 00:27:00:00:15:26, com o endereço de IP 192.168.2.101 que a fonte deve sempre pegar.
Dessa forma o roteador irá saber que o endereço 192.168.2.101 está reservado para o MacAddress 00:27:00:00:15:26 e toda vez a fonte de alimentação for ligada e ela solicitar um endereço de IP na rede, ela sempre irá receber o mesmo endereço de IP.
E dessa forma, eu tenho paz e tranquilidade enquanto saboreio um delicioso sorvete de ouro, na costa do mediterrâneo:
Em computação, hexadecimal é muito mais fácil de entender.
Quando um programador que manja de hardware olha para um código hexadecimal, ele sabe exatamente como o hardware está se comportando, apenas fazendo contas de cabeça.
Por isso que o hexadecimal é utilizado.
Não leia o resto.
Modo nerdice on.
Computador trabalha com lógica binária.
Pensando em um computador de 8 bits, sabemos que ele consegue manusear 8 bits por vez em sua linha de dados.
No diagrama abaixo temos um computador simplificado:
Do lado esquerdo tem o processador e do lado direito tem a memória. Deixei de fora alguns detalhes para ficar mais fácil a explicação.
O processador e a memória são interligados pelo barramento de endereçamento, de dados e as linhas de controle.
O barramento de dados está detalhando os 8 bits que o compõe.
Cada seta no barramento de dados representa um bit de dados.
O processador consegue ler e escrever na memória, 8 bits de dados por vez, pois trata-se de um computador de 8 bits.
Os bits, são essas linhas que podem assumir valores binários de zero ou um.
Eletronicamente falando:
Essas linhas dos bits de dados podem estar energizadas ou não.
As linhas que estiverem energizadas terão o valor lógico VERDADEIRO (1 – um) e as que não estiverem energizadas terão o valor lógico FALSO (0 – zero).
Onde entra o hexadecimal:
Note que o barramento de dados foi separado em dois conjuntos de 4 bits.
Um conjunto de 4 bits engloba os bits de 0 a 3
O segundo conjunto de 4 bits engloba os bits de 4 a 7
A pergunta que a gente faz agora é: Quantas combinações a gente consegue fazer de bits ligados e desligados aqui?
Já dou a resposta, que são 256 combinações indo de todos os 8 bits com valor FALSO – desligados até termos todos os 8 bits com o valor VERDADEIRO – ligados.
Acompanhe, analisando os 4 primeiros bits:
Os caras fizeram o seguinte, os quatro primeiros bits, dá para fazer 16 combinações indo do valor decimal zero até o valor decimal 15. Basta continuar com a tabela adicionando os bits que faltam e iremos chegar em 256 combinações, podendo representar os números de zero a 255..
Mais um detalhe: A posição do bit corresponde a um valor decimal. Se os bits zero e dois forem verdadeiros, significa que temos o número 5 nas notações decimal e hexadecimal, por exemplo.
Conforme dito, se pegar o segundo conjunto de 4 bits, também dá para fazer essas dezesseis combinações.
Juntando o primeiro e o segundo conjunto de 4 bits, dá para fazer 16 X 16 combinações, ou seja, dá para fazer 256 combinações, que é capaz de representar os valores decimais indo de zero a 255.
No fim de tudo é isso o que realmente importa:
Para simplificar isso aí, os bits são separados em grupos de 4 bits que são representados pelos símbolos indo de “0” até “F”.
Um código indicando quais linhas de cada conjunto de 4 bits estão ligadas ou desligadas.
Simples e brilhante.
Desenvolvendo computadores:
Agora, se coloque no lugar do desenvolvedor de computadores.
O cara tem que lidar com o circuito elétrico. Tem que olhar para um código e decodificar de cabeça quais linhas do barramento de dados estão energizadas ou não.
É muito mais fácil para um engenheiro de hardware:
Separar a linha de dados em grupos de 4 bits.
Trabalhar com a notação hexadecimal, 3A por exemplo.
Converter esse número, de cabeça para o binário “0011 1010”.
E identificar no barramento quais linhas de dados que estão energizadas ou não…
Do que fazer a conversão do número 58 (decimal) para seu correspondente binário, que é bem mais complicado.
É por isso que se utiliza o hexadecimal.
Hexadecimal é para humanos falarem com máquinas, enquanto que decimal é para máquinas falarem com humanos.
Recomendo que seja lido o livro do Tocci, que já indiquei em outras respostas por aqui.
Olha, a teoria de como um led acende está escrita por ai, aos montes.
O que eu faço aqui é complementar toda a teoria, mostrando uma sequência de fotos de led, nas cores azul, verde e vermelho, com diferentes voltagens, mostrando o aumento do brilho à medida que aumenta a corrente circulando no mesmo.
O resistor do led vermelho é de 180 ohms e o dos outros leds é 120 ohms e cada “led – resistor” foram alimentados com uma tensão que foi ajustada entre 2 e 3 volts.
As fotos foram tiradas com uma Nikon D3200, lente macro 85mm, focando a objetiva do estereoscópio. Temos, no final, a foto do setup utilizado.
Quando não especificado, foi utilizada abertura f/5.6, tempo de exposição 1/40, ISO 800.
Clique nas fotos para ampliar ou botão direito -> ver imagem.
Divirta-se:
Led azul. Dá para ver as conexões elétricas.
Led verde. O plástico distorcia a imagem, mas mesmo assim dá para ver a pastilha acendendo
Led vermelho, eu achei essa sequência a mais bonita. Dá para ver o led acendendo, praticamente sem distorção alguma. Me lembrou o buraco negro do filme Intesrstellar.
Setup utilizado para fotografar os leds azul, verde e vermelho.
O que tem a ver uma tradicional receita de pudim e a contagem binária de 8 bits, indo de zero a 255?
Pergunta respondida originalmente no Quora em 25/02/2021
Pudim de 8 bits:
Foto: Acervo pessoal
Ingredientes:
1 lata de leite moça
2 medidas de leite da lata de leite moça.
4 ovos (tire a pele da gema).
8 colheres de sopa, bem cheias de açúcar.
Modo de preparo:
Por 16 minutos aqueça o açúcar em uma forma de pudim até formar o caramelo de açúcar. Cuidado para não queimar o açúcar. Espalhe esse caramelo pela forma até ela ficar bem amarelinha.
Por no máximo 32 minutos, bata em um liquidificador a 1 medida de leite moça, as 2 medidas de leite e os 4 ovos.
Coloque, na forma caramelizada, o conteúdo previamente batido no liquidificador.
Asse o pudim em Banho Maria por 64 minutos em um forno pré aquecido a 128°C, assim que colocar a forma no forno, ajuste a temperatura do forno para que fique em torno de 255°C.
Os fios de energia tem duas fases de 127V, essas fases estão em sentido opostos? Se não, como eles são somados para formar 220V?
A resposta que vou dar aqui é baseada na energia elétrica que é fornecida em minha residência. Para outras unidades consumidoras, a resposta pode ser diferente, ok?
Olhando a conta de energia elétrica:
Olhando a conta de energia elétrica de minha casa, conforme figura 1 abaixo, podemos ver que o tipo de fornecimento de energia elétrica é monofásico (guarde essa informação).
Figura 1: Conta de energia monofásica.
Com essa informação dá para falar com segurança que a energia elétrica que chega em minha residência é monofásica a 3 fios.
Pera lá e a pergunta:
É exatamente aqui que entra a pergunta do Quora: Como a energia fornecida pode ser monofásica se chegam 3 fios na residência?
Como se a gente medir do neutro para cada uma das supostas fases dá 127Volts e se a gente medir entre as duas supostas fases temos 220Volts?
Que mutreta é essa?
Me explica isso aí que preciso saber 🙂
O transformador no poste:
Como sempre sem entrar em muitos detalhes, podemos dizer que o transformador lá da rua é um monte de fio enrolado de tal maneira que seja possível reduzir a alta tensão da rua para os 220Volts que utilizamos em casa.
A parte do transformador que recebe a alta tensão da rua é chamada de primário do transformador e a parte que entrega os 220V para as residências é chamada de secundário do transformador.
Focando no secundário do transformador.
A grosso modo, podemos dizer que o secundário do transformador, nesse caso, é composto por 3 enrolamentos ligados conforme figura 2 abaixo, que compõem as 3 fases de um sistema trifásico:
Figura 2: Ligação delta do secundário.
Esse diagrama de ligação do secundário do transformador é chamado de ligação delta. Também tem a ligação estrela que não vou abordar nessa resposta.
Note que os enrolamentos do transformador são ligados “no formato” de um triângulo e que temos as seguintes tensões de fases:
Tensão de fase 1 entre o ponto A e C, fornecendo 220Volts.
Tensão de fase 2 entre o ponto B e C, fornecendo 220Volts.
Tensão de fase 3 entre os pontos A e B, fornecendo 220Volts.
Agora as coisas começam a ficar interessantes:
Os fios que saem dos pontos A, B e C se chamam “fase” e muitos técnicos confundem o fio de fase com a tensão de fase que é algo totalmente diferente.
A tensão de fase é medida, nesse caso, entre dois fios de fase. Um fio de fase está saindo do ponto A e o outro fio de fase está saindo do ponto C.
Quando eu meço a voltagem entre os fios de fase que saem do ponto A e C, eu estou medindo apenas uma tensão de fase, que nesse caso é a tensão de fase 1.
Na minha residência não tem como ter as outras 2 tensões de fase porque está faltando o fio de fase que sai do ponto B. Simplesmente não dá para usar as outras duas tensões de fase.
Por isso é que o sistema é monofásico. Ele é monofásico porque está chegando na unidade consumidora apenas uma tensão de fase.
Eu tenho o neutro e 2 fios de fase que me permitem utilizar apenas uma tensão de fase ;-).
Ok, ainda está faltando o neutro. De onde vem o neutro?
Ainda olhando na figura 2, dá para ver que tem um fio saindo do meio do enrolamento do transformador que faz a fase 1. Ele é o neutro.
Abaixo segue o detalhe da fase 1, mostrando a ligação do fio neutro na rua e nos fios que chegam em casa:
Figura 3: A origem do fio neutro
O fio neutro é uma derivação bem no meio do enrolamento do transformador.
Por isso que a voltagem sai meio a meio, mas mesmo assim a tensão não muda de fase.
Explicando melhor:
Digamos que esse enrolamento entre os pontos A e C tenha 220 espiras (voltas).
Podemos dizer que os 220Volts estão distribuídos entre o ponto A e C do enrolamento do transformador.
Como esse enrolamento tem 220 espiras, podemos dizer que cada espira é responsável por fornecer 1 volt.
À medida que vou subindo as espiras, a voltagem vai subindo até eu chegar na última espira e enxergar os 220Volts entre o ponto A e C.
Não há mudança de fase quando eu caminho do ponto A para o ponto C do enrolamento e vou medindo a tensão das espiras, ou vice versa. A tensão medida apenas aumenta ou diminui, mas sempre permanece em fase. Por isso que é monofásico.
Se eu parar na metade do caminho entre A e C e fizer uma derivação naquele ponto e o chamar de neutro, a tensão de saída do neutro para o ponto A ou C será exatamente a metade da tensão entre o ponto A e C.
Aí o que os caras fazem?
“Eles” aterram essa derivação central do transformador da rua, justamente aquele fio que sai do meio do enrolamento.
Então eles “batizam” de neutro essa derivação central que foi previamente aterrada.
Dizem que “não dá choque”,
Nos dizem que ele é o ponto de referência para medir tensão
E aí a gente mede do meio do enrolamento do transformador para cada uma das pontas e encontra os 110Volts
E aí a gente mede entre os pontos A e C e encontra os 220Volts
E fica pensando que são duas fases, só que não é isso por conta da maneira que o enrolamento do transformador foi construído.
É só uma bobina com uma derivação central no enrolamento do transformador, cuja derivação central, “por acaso” foi aterrada.
De quebra, temos que dentro da casa, o neutro e terra tem o mesmo ponto de origem.
Enquanto o terra serve para proteger dispositivos elétricos e pessoas, o neutro permite que a residência seja alimentada com uma tensão menor e mais segura.
Note também que o neutro é aterrado tanto no poste como na caixa de medição de energia elétrica e o aterramento dentro da unidade consumidora deve ter uma origem única.
É isso. Espero que tenha conseguido esclarecer essa dúvida.
Fonte:
MARTIGNONI, Alfonso. Transformadores. 8. ed. São Paulo: Globo, 1969. 307 p. (ISBN: 85-250-0223-2).
Responder essa, parece que estão querendo colocar os programadores em um patamar superior. SQN. Programadores precisam se dedicar muito nessa profissão.
A profissão de programador, como um todo, demanda que o profissional seja capaz de desmembrar tarefas complexas em passos menores e facilmente executáveis, utilizando uma linguagem extremamente precisa e que não admite erros.
Programas simples como solicitar que um led acenda ao abrirmos uma porta, demandam uma série de instruções que precisam estar ordenadas na sequência correta e devem ser sintática e semanticamente corretas.
Exemplificando, para o Arduino, um programa desses que acende ou apaga um led a partir do monitoramento de um sensor, seria mais ou menos assim:
#include <Arduino.h>
int ledPortaAberta=8;
int ledPortaFechada=10;
int sensorPorta=6;
#define DESLIGADO LOW
#define LIGADO HIGH
void setup(){
pinMode(ledPortaAberta, OUTPUT);
pinMode(ledPortaFechada, OUTPUT);
pinMode(sensorPorta, INPUT);
Serial.begin(9600);
}
void loop(){
if (digitalRead(sensorPorta)==LIGADO){
digitalWrite(ledPortaAberta, DESLIGADO);
digitalWrite(ledPortaFechada, LIGADO);
Serial.println("Porta fechada");
}
else {
digitalWrite(ledPortaAberta, LIGADO);
digitalWrite(ledPortaFechada, DESLIGADO);
Serial.println("Porta aberta");
}
delay(1);
}
Conforme dito, o programa não deve ter nenhum erro sintático, caso contrário ele não ele não irá compilar e muito menos será possível gerar o código executável abaixo:
Ainda assim, não basta saber escrever o programa, colocar os comandos na sequência correta, seguir todas regras da linguagem, saber compilar, gerar esse código hexadecimal e até entender cada um dos comandos hexa acima.
O programa também tem que ser semanticamente correto.
A semântica, o sentido das palavras bem como a interpretação das sentenças e dos enunciados utilizados nessa linguagem acima devem refletir exatamente o que foi solicitado em linguagem natural, “quando uma porta se abre, um led se acende e quanto a mesma porta se fecha, o led tem que apagar”.
O trabalho do programador é converter um requisito em linguagem natural para a linguagem formal.
Esse trabalho de fazer a conversão e garantir que a semântica de ambas linguagens estejam alinhadas é onde está a arte e o desafio que programadores enfrentam todos os dias.
Dá para aprender, mas eu diria que poucos são metódicos o suficiente para tal.
É uma questão de perfil, nada mais.
Resposta originalmente postada no Quora em 29/maio/2020 e fonte da foto do teclado: https://www.cybercentralcorp.com/blog/
Resposta originalmente postada no Quora, por Renato de Pìerri em 28/07/2019
Personagens Clássicos
Por que contamos histórias? A motivação de contarmos histórias, segundo Carl Jung, pode ser explicada a partir da noção do inconsciente coletivo. Trata-se de um conhecimento nato que podemos passar a vida inteira sem nunca o notarmos.
Dentro desse inconsciente coletivo há temas universais e personagens que se manifestam em nossa cultura na forma de histórias e estão presentes na literatura, música, arte, filme e jogos.
O inconsciente coletivo do Jung é a base de nossa conexão a certos tipos de personagens universais e esses personagens são utilizados em toda a área do entretenimento para aumentar a conexão entre a audiência e a história.
Herói:
O herói é o personagem central em um jogo single player. Ao criar um personagem herói, tenha em mente que esse herói será o avatar do jogador e o jogador deve se identificar e gostar desse personagem. Ao herói sempre é apresentado um problema no início do jogo e ele entra em uma jornada, física ou emocional, a fim de resolver o desafio. O herói executa a maioria das ações e assume a maioria dos riscos e responsabilidades. Luke Skywalker é um tipo clássico de personagem herói
O sombra é um personagem extremamente importante. Ele representa o oposto do herói, é o vilão da história. Trata-se do responsável por todos os problemas do herói. Dependendo do jogo, esse personagem fica escondido até chegar ao climax da história e nada impede que o shadow seja o lado negro do herói. Darth Vader, por exemplo.
O mentor orienta o heroi dentro da trama da história (ou jogo). Provê informações para o herói, faz a função de conselheiro e pode orientar pois tem experiência prévia. Obi Wan Kenobi e Yoda são exemplos de mentores. Ah! O mentor também pode dar orientações furadas e colocar o herói em apuros.
O aliado é um personagem que ajuda na evolução do heroi durante a jornada e pode ajudá-lo em tarefas difíceis de se executar sozinho. Han Solo e Chewbacca do Star Wars são exemplos de aliados.
Guardião:
O guardião está lá para “atrapalhar” o progresso do herói se valendo de todas as artimanhas que forem necessárias, até que o herói prove seu valor e o guardião o libere. Podemos considerar um guardião clássico a Esfinge que guarda os portões de Tebas na peça grega Édipo. A Esfinge (guardiã) testa o Édipo (herói), propondo uma charada. Édipo a responde corretamente e consegue entrar em Tebas continuando sua jornada, caso contrário seria devorado.
Trickster (trambiqueiro):
O trambiqueiro é um personagem neutro que está lá para enganar. Pode causar um dano severo por conta de suas pegadinhas, interrompendo a evolução do personagem ou podem ser um personagem cômico para suavizar a trama da história. C3PO E R2D2 são exemplos de personagens trickster e podem assumir a posição de co-adjuvante do heroi ou até assumir o papel de sombra.
Herald (mensageiro):
O mensageiro serve para facilitar a mudança de rumo (ou de level) na história e fornecer orientação. Um exemplo de personagem ‘herald’ seria a princesa Leia que pede por ajuda e acaba motivando Luke Skywalker a seguir sua jornada.
Protagonista:
Dentro dos arquétipos de Carl Jung, o primeiro deles é o protagonista, que pode se confundir com o arquétipo do herói. Trata-se do personagem principal. Jogos single-player são centrados nesse personagem e a história do jogo é contada a partir do ponto de vista do dese personagem, mesmo que o jogo não seja em primeira pessoa. Gordon Freeman em Half-Live, por exemplo.
Uma das funções do protagonista é levar a história adiante, agir antes de reagir e fazer as coisas acontecerem. O protagonista pode até perder o controle por conta de um ataque, mas ele sempre recupera o controle da situação. Lara Croft (Tomb Raider) e Ezio Auditore da Firenze (Assasin’s Creed II) são protagonistas.
Outro ponto importante no protagonista é que ele tenha falhas como qualquer humano, aproximando-o de sua audiência e gerando empatia. As falhas podem ser na forma física como uma paralisia, ser feio, ter culpa por um crime cometido no passado ou ser como o Super Homem que não aguenta nem uma Kriptonita.
Antagonista:
É o contrário do herói. É o vilão do jogo. Do ponto de vista do Jung seria o arquétipo do sombra, porém nem sempre o antagonista é malvado. O pró e o antagonista podem simplesmente ter pontos de vista diferentes como liberal x conservador, privado x público ou mesmo estilo de vida diferentes entre um e outro.
Caso protagonista e antagonista tenham um mesmo objetivo em uma história, eles podem se aliar, o que é chamado de união de opostos, dado que a resolução de um determinado conflito é mais importante no momento.
Co-Protagonista:
Co-Protagonista une forças com o protagonista na história. Muitas vezes esses personagens aparecem em games multiplayer massivos (MMOs) que precisam de times. Esse tipo de personagem pode iniciar no jogo como antagonista, mas no decorrer do game se tornam co-protagonistas a partir de um determinado evento ou embate.
Fonte:
NOVAK, Jeannie. GAME DEVELOPMENT ESSENTIALS: AN INTRODUCTION. 3. ed. United States: Delmar Cenage Learning, 2012. 514 p. ISBN 13: 978-1-111-30765-3.