Pesquisar neste blog

23/05/2021

Manipulando CSS em HTML

Arquivo: estilo.css

@font-face {
    font-family'Oswald';
    srcurl('../fonts/Oswald-Regular.ttf'format('truetype');
}

*{
    font-family'Oswald'sans-serif;
}

html {
    height100%;
}

body {
    margin0;
    background-color#0D262D;
    color#fff;
    height100%;
}

table {
    border-collapsecollapse;
}

tr {
    border-bottomsolid 1px white;
}

td {
    font-size1.6em;
    padding10px;
}

li {
    font-size1.6em;
}

.conteudo {
    displayflex;
    flex-directioncolumn;
    align-itemscenter;
    min-height100%;
}

.exercicio div {
    font-size1.8em;
    bordersolid 5px #fff;
    padding0px 40px;
    margin10px;
}

.exercicio div:nth-of-type(1) {
    background-colordarkgoldenrod;
}

.exercicio div:nth-of-type(2) {
    background-colorcrimson;
}

.exercicio div:nth-of-type(3) {
    background-colordarkcyan;
}

.exercicio div:nth-of-type(4) {
    background-colordarkorchid;
}

.exercicio div:nth-of-type(5) {
    background-colordodgerblue;
}

.exercicio div:nth-of-type(6) {
    background-colorsalmon;
}

.exercicio .destaque {
    bordersolid 10px greenyellow;
    colorgreenyellow;
    font-weightbold;
}


Arquivo: manipulandoCSS.html

<!DOCTYPE html>
<html>

<head>
    <meta charset='UTF-8'>
    <title>Manipulando CSS</title>
    <link rel='stylesheet' href='css/estilo.css'>
    <script src='js/jquery.js'></script>
</head>

<body class='conteudo exercicio'>
    <h1>Manipulando CSS</h1>
    <div id='div1'>1</div>
    <div id='div2'>2</div>
    <div id='div3'>3</div>
    <div id='resultado'></div>
    <script>
       
    </script>
</body>

Saída anterior

Arquivo atualizado: manipulandoCSS.html

<!DOCTYPE html>
<html>

<head>
    <meta charset='UTF-8'>
    <title>Manipulando CSS</title>
    <link rel='stylesheet' href='css/estilo.css'>
    <script src='js/jquery.js'></script>
</head>

<body class='conteudo exercicio'>
    <h1>Manipulando CSS</h1>
    <div id='div1'>1</div>
    <div id='div2'>2</div>
    <div id='div3'>3</div>
    <div id='resultado'></div>
    <script>
        // selecionar a fonte atual
        const fonte = $('#div1').css('font-family')
        $('#resultado').append(`Fonte é ${fonte}`)

        $('#div1').css('font-size''3em')//alterando a propriedade
        $('#div1').css({'font-size':'3.5em''color': 'yellow'})//alterando 2 propriedades
        $('#divi1').css('font-size'function(){
            return `${2*2}em`
        })

        $('#div2').addClass('destaque')//adiciona a classe destaque

        //verificando se tem uma determinada classe
        const temClasse = $('#div2').hasClass('destaque')
        $('#resultado').append(`<br>Tem class ? = ${temClasse}`)

        $('#div2').removeClass('destaque')//remove classe destaque
        $('#div2').toggleClass('destaque')
        $('#div2').toggleClass('destaque')
    </script>
</body>

Saída atualizada








01/05/2021

Semáforo com PIC 16F877A

 Desafio1: construir um semáforo para carros e pedestre

Descrição do funcionamento.

O semáforo deve ficar sempre verde para os carros e vermelho para os pedestres. Entretanto
quando um pedestre acionar um dos botões colocados em ambos os lados da rua, o semáforo
inicia a sequência de liberação da passagem para ele. Essa sequência e descrita a seguir:

1. Em funcionamento sem pedestre o sinal é sempre verde para os carros e vermelho
para a passagem de pedestre

2. Após um pedestre pressionar o botão os sistema espera 10 segundo mantendo o
verde para os carros e vermelho para o pedestre.

3. Então, sinal muda amarelo para os carros e continua vermelho para os pedestre por 2
segundos.

4. Após o tempo com amarelo ligado, o sinal dos carros muda para vermelho, espera um
segundo e o sinal do pedestre vai para verde;

5. Depois de 10 segundos dando passagem para os pedestres, o sinal (do pedestre)
começa a piscar e fica assim por mais 5 segundos;

6. Então o sinal do pedestres fica vermelho.

7. Após um segundo o sinal para os carros muda para verde, mantendo assim até um
pedestre pressionar o botão novamente.


Figura 1 - Semáforo de pedestre
















Resolução:

Código feito em CCS Compiler

#include <16F877A.h>
#device adc = 8
#use delay(crystal = 20MHz)
#fuses HS, NOWDT, NOPROTECT, NOLVP
#define D1 1000
#define D2 2000
#define D3 3000
#define D4 100

//0b00000001 // vermelho carros
//0b00000010 // amarelo  carros
//0b00000100 // verde    carros
//0b00000001 // vermelho para carros e vermelho para pedestres
//0b01000100 // verde para carros e vermelho para pedestres
//0b01000010 // amarelo para carros e vermelho para pedestres

boolean flag = false;
int cont = 0;

void main(){

   while(TRUE){
      //TODO: User Code
      
      if(input(PIN_B0) == TRUE){
         flag = true;
         output_high(PIN_B1);
      }
      
      cont++;
      delay_ms(10);
      
      
      
      switch(cont){
         
         case 1:
            if(input(PIN_B0) == true){
               flag = true;
               output_high(PIN_B1);
            }
            
            output_d(0b01000100);
            delay_ms(D3);
            
            if(input(PIN_B0) == true){
               flag = true;
               output_high(PIN_B1);
            }
         break;
         
         case 2:
            if(input(PIN_B0) == true){
               flag = true;
               output_high(PIN_B1);
            }
         
           output_d(0b01000010);
           delay_ms(D2);
                                            
           if(input(PIN_B0) == true){
               flag = true;
               output_high(PIN_B1);
           }
           
         break;
         
         case 3:
            if(input(PIN_B0) == true){
               flag = true;
               output_high(PIN_B1);
            }
                  
            output_d(0b01000001);
            delay_ms(D3);
            
            if(input(PIN_B0) == true){
               flag = true;
               output_high(PIN_B1);
            }
            
            delay_ms(D4);
            
            if(flag == true){
               output_d(0b10000001);
               delay_ms(D3);
               
               for(int i = 0; i < 10; i++){
                  output_high(PIN_D7);
                  delay_ms(200);
                  output_low(PIN_D7);
                  delay_ms(200);
               }
               
               output_low(PIN_B1);
               flag = false;
               cont = 0 ;
            }
            cont = 0;
         break;   
         
      }
         
   }

}



14/04/2021

Modificando HTML com jQuery #01

<!DOCTYPE html>
<html>

<head>
    <meta charset='UTF-8'>
    <title>Modificando HTML #01</title>
    <link rel='stylesheet' href='css/estilo.css'>
    <script src='js/jquery.js'></script>
</head>

<body class='conteudo exercicio'>
    <h1>Modificando HTML #01</h1>
    <div id='conteudo1'></div>
    <div id='conteudo2'></div>
    <div id='conteudo3'></div>
    <div>Sem ID!</div>

    <script>
        // Conteúdo 1
        $('#conteudo1').append('<p1>1<p/>')//selecionando a partir do id, foi adicionado um parágrafo 1
        
        //Conteúdo 2, dentro de array é gerado 3 li (itens de 1 lista)
        const elementos = [
            $('<li>').append('Feijão'), $('<li>').append('Carne')
        ]
        
        //adiciona 1 intem sorvete e depois os 3 li do array dentro da lista 
        const lista = $('<ul><li>Sorvete</li><ul>').append(elementos)
        $('#conteudo2').append(lista)

        // Conteúdo 3 (append via anexando)
        $('#conteudo3').append(['<h1>1</h1>''<h1>2</h1>']).prepend('<h1>0</h1>')//coloca o 0 antes do 1 e 2
        //$('#conteudo3').html('<h1>1 2 3</h1>')// substitui o conteúdo acima por esse
        //$('#conteudo3').text('<h1>123</h1>')

        //alterando todos
        //$('div').html('<strong>Todos !</strong>')
    </script>
</body>

Saída 1



Saída 2


Saída 3


13/04/2021

QUESTIONÁRIO: ENDEREÇO - IP

1) Associe o valor decimal com o respectivo valor binário.

























2) Associe o valor decimal com o respectivo valor binário.
























3) Associe o valor decimal com o respectivo valor binário.


























4) Associe o valor decimal com o respectivo valor binário.


























5) Com base no endereço IP: 10.1.1.10 / 255.0.0.0, assinale as alternativas corretas:























6) Com base no endereço IP: 10.1.1.10 / 255.0.0.0, assinale as alternativas corretas :
























7) Com base no endereço IP: 172.16.32.64 / 255.255.0.0, assinale as alternativas corretas :























8) Com base no endereço IP: 172.16.32.64 / 255.255.0.0, assinale as alternativas corretas :























9) Com base no endereço IP: 192.168.92.124 / 255.255.255.0, assinale as alternativas corretas :























10) Com base no endereço IP: 192.168.92.124 / 255.255.255.0, assinale as alternativas corretas :
























11) Converta o endereço IP 10.20.30.40 do formato decimal para o formato binário. (Obs.: Escreva os oito bits de cada octeto separados por pontos, por exemplo: 10101010.1000000.10011001.00001001)














12) Converta o endereço IP 10.20.30.40 do formato decimal para o formato binário. (Obs.: Escreva os oito bits de cada octeto separados por pontos, por exemplo: 10101010.1000000.10011001.00001001)













13) Converta o endereço IP 172.16.32.64 do formato decimal para o formato binário. (Obs.: Escreva os oito bits de cada octeto separados por pontos, por exemplo: 10101010.1000000.10011001.00001001)














14) Converta o endereço IP 172.16.32.64 do formato decimal para o formato binário. (Obs.: Escreva os oito bits de cada octeto separados por pontos, por exemplo: 10101010.1000000.10011001.00001001)













15) Converta o endereço IP 192.168.92.124 do formato decimal para o formato binário. (Obs.: Escreva os oito bits de cada octeto separados por pontos, por exemplo: 10101010.1000000.10011001.00001001)















16) Converta o endereço IP 192.168.92.124 do formato decimal para o formato binário. (Obs.: Escreva os oito bits de cada octeto separados por pontos, por exemplo: 10101010.1000000.10011001.00001001)













12/04/2021

Algoritmo de estado de link de Dijkstra - avançado

 
























Considere a tabela preenchida abaixo, que calcula a distância mais curta para todos os nós de Y:

================================================
|    Nó       |      Menor Distância de Y     |    Nó Anterior   |
================================================
       Y                                0                                     n/a   
       X                                3                                     Y   
       W                               4                                     Y   
       U                                5                                     W   
       V                                5                                     X   
       Z                                5                                     Y   
================================================

1) Para o link X, qual é o custo associado a este link? Se a resposta não puder ser determinada com as informações, responda com 'n / a' ?

Resposta:  4


2) Para o link Y, qual é o custo associado a este link? Se a resposta não puder ser determinada com as informações, responda com 'n / a' ?

Resposta:  5

11/04/2021

Algoritmo de vetor de distância Bellman Ford






















1) Quando o algoritmo converge, quais são os vetores de distância do roteador 'Y' para todos os roteadores? Escreva sua resposta como u, v, w, x, y ?

Resposta:
22, 13, 12, 4, 0


2) Quais são os vetores de distância iniciais para o roteador 'W'? Escreva sua resposta como u, v, w, x, y e se a distância for ∞, escreva 'x' ?

Resposta:
22, 13, 12, 4, 0


3) A frase 'Boas notícias viajam rápido' é muito aplicável ao roteamento do vetor de distância quando os custos do link diminuem; qual é o nome do problema que pode ocorrer quando os custos do link aumentam ?

Resposta:
A contagem é até o infinito



04/04/2021

CAMADA DE TRANSPORTE

EXERCÍCIO TCP:

Considere a figura abaixo em que o TCP remetente e destinatário se comunicam através de uma conexão na qual os segmentos remetente-destinatário podem ser perdidos. O remetente TCP envia uma janela inicial de três segmentos em t = 1,2,3, respectivamente. Suponha que o valor inicial do número de sequência do emissor para o receptor seja 95 e os três primeiros segmentos contenham, cada um, 542 bytes.

O atraso entre o emissor e o receptor é de 7 unidades de tempo, e assim o primeiro segmento chega ao receptor em t = 8. Como mostrado na figura, um dos três segmentos é perdido entre o emissor e o receptor.

























Responda as seguintes questões:

1) Forneça os números de sequência associados a cada um dos três segmentos enviados pelo remetente

2) Listar a sequência de confirmações transmitidas pelo receptor TCP em resposta ao recebimento dos segmentos realmente recebidos. Em particular, forneça o valor no campo de confirmação de cada reconhecimento receptor-remetente e forneça uma breve explicação do motivo pelo qual esse valor específico de número de confirmação está sendo usado.

Resolução:

Questão 1)
95

(95+542)=637

(637+542)=1179

(1179+542)=1721

Os números sequenciais associados são: 95.637.1179.1721


Questão 2)
As sequencias TCP do receptor são: x.95.95

o segmento seguinte que B envia a C conterá 95 no campo do número de reconhecimento. Como o TCP somente reconhece bytes até o primeiro byte que estiver faltando na cadeia, logo; dizemos que o TCP provê reconhecimentos cumulativos.

02/04/2021

Atrasos de DNS e HTTP

Suponha que, em seu navegador da Web, você clique em um link para obter uma página da Web. O endereço IP da URL associada não é armazenado em cache no host local; portanto, é necessária uma pesquisa de DNS para obter o endereço IP. 

Suponha que apenas um servidor DNS, o cache DNS local, seja visitado com um atraso RTT de RTT 0 = 1 milissegundos. 

Inicialmente, vamos supor que a página da Web associada ao link contenha exatamente um objeto, consistindo em uma pequena quantidade de texto HTML. 

Suponha que o RTT entre o host local e o servidor da Web que contém o objeto seja RTT HTTP = 60 ms.
















1) Assumindo o tempo de transmissão zero para o objeto HTML, quanto tempo decorre de quando o cliente clica no link até que o cliente receba o objeto ?

Resolução:

RTTo + 2 * RTThttp = 1 + 2 * 60 = 121 ms

2) Agora suponha que o objeto HTML faça referência a 4 objetos muito pequenos no mesmo servidor da web. Negligenciando os tempos de transmissão, quanto tempo decorre de quando o cliente clica no link até que o objeto base e todos os 4 objetos adicionais sejam recebidos do servidor web no cliente, assumindo HTTP não persistente e sem conexões TCP paralelas ?

Resolução:

2 x 60 + 4 x 2 x 60 + 1 = 601 ms

30/03/2021

Traceroute - Teste 2

 a. Visite o site <www.traceroute.org> e realize traceroutes de duas cidades diferentes na França para o mesmo hospedeiro de destino nos Estados Unidos. Quantos enlaces são iguais nos dois traceroutes ? O enlace transatlântico é o mesmo ?

b. Repita (a), mas dessa vez escolha uma cidade na França e outra cidade na Alemanha.

c. Escolha uma cidade nos Estados Unidos e realize traceroutes para dois hosts, cada um em uma cidade diferente na China. Quantos enlaces são comuns nos dois tracroutes ? Os dois traceroutes divergem antes de chegar à China ?


Resolução:

a) Cidade escolhia foi a capital da França (Paris) do site www.paris.fr































b)

































Para o site na cidade da Alemanha, nota-se que não há enlaces em comum ou links de comunicação. Percebe-se que o IP de origem são divergentes entre si em vista de um servidor estar localizado na França (212.95.66.126) e outro no Alemanha (172.217.22.4). Além disso, os saltos 9Sde um enlace e outro também são diferentes para com o rastreamento, sendo 10 saltos para França e 8 para a Alemanha.


c) Para o site https://www.walmart.com dos EUA



















Para o site www.sinopecgroup.com situado na China





















Para um servidor pertencente ao EUA e rastreando 2 sites em cidades diferentes da China, nota -se que nos traceroutes há em comum tanto o endereço origem IP(67.210.17.1)  e (205.210.17.1) , há também uma diferença nos saltos (7 no primeiro e 11 no segundo). Sim, os traceroutes divergem


28/03/2021

Traceroute - Teste 1

Execute o programa Traceroute (traceroute.org) para verificar a rota entre uma origem e um destino, no mesmo continente, para três horários diferentes do dia.

a. Determine a média e o desvio-padrão dos atrasos de ida e volta para cada um dos três horários.

b. Determine o número de roteadores no caminho para cada um dos três. Os caminhos mudaram em algum dos horários?

c. Faça o mesmo para uma origem e um destino em continentes diferentes. compare os resultados dentro do mesmo continente com os resultados entre continentes diferentes.

Resolução:

a)

Horário 1 as 21:55 para http://www.buenosaires.pe.gov.br/  - ip: 191.252.86.160 

Mínimo = 35ms, Máximo = 57ms, Média = 46ms

Desvio padrão = sqrt((35-46)^2 + (57-46)^2 )/2 = 11 ms



__________ // _______________

Horário 2 as 23:45 para http://www.rmparaguay.com - ip: 31.170.161.245

Mínimo = 166ms, Máximo = 167ms, Média = 166ms

Desvio padrão = sqrt((166 -166)^2 + (166-167)^2 )/2 = 0,7ms



_________________ // _______________

Horário 3 as 00:00 para pluslaboral.cl - ip: 185.230.63.107

Mínimo = 151ms, Máximo = 153ms, Média = 152ms

Desvio padrão = sqrt((151-152)^2 + (153-152)^2 )/2 = 1 ms



b)

21 roteadores para o  ip: 191.252.86.160  às 00:05 hs

25 roteadores para o ip: 31.170.161.245   às 00:18 hs

20 roteadores para o ip: 185.230.63.107  às 00:29 hs

(Não) o que muda é apenas o tempo de acesso aos roteadores



c)

Horário 1 as 22:30 para corporate.exxonmobi.com   na AMÉRICA DO NORTE 

Mínimo = 38ms , Máximo = 40ms,  Média = 39ms

Desvio padrão = sqrt((38-39)^2 + (40-39)^2 )/2 = 1,41ms

com 19 roteadores



Horário 1 as 23:34 para internationalpaper.com   na AMÉRICA DO NORTE 

Mínimo = 177ms , Máximo = 506ms,  Média = 338ms

Desvio padrão = sqrt((177-338)^2 + (506-338)^2 )/2 = 232,7ms

com 25 roteadores

________________ // ____________



Horário 2 as 23:37 para cisco.com   na EUROPA 

Mínimo = 167ms , Máximo = 178ms,  Média = 170ms

Desvio padrão = sqrt((167-170)^2 + (178-170)^2 )/2 = 8,54ms

com 21 roteadores



Horário 2 as 23:44 para dhl.com   na EUROPA 

Mínimo = 156ms , Máximo = 189ms,  Média = 164ms

Desvio padrão = sqrt((156-164)^2 + (189-164)^2 )/2 = 26,25ms

com 19 roteadores

__________ // ____________



Horário 3 as 23:55 para uchile.com   na AMERICA DO SUL 

Mínimo = 169ms , Máximo = 170ms,  Média = 169ms

Desvio padrão = sqrt((169-169)^2 + (170-169)^2 )/2 = 0,7 ms

com 20 roteadores



Horário 3 as 00:01 para braspar.org   na AMERICA DO SUL 

Mínimo = 194ms , Máximo = 437ms,  Média = 341 ms

Desvio padrão = sqrt((194-341)^2 + (437-341)^2 )/2 = 111,32 ms

com 22 roteadores

26/03/2021

Vazão fim a fim e links de gargalo

Considere o cenário mostrado abaixo, com quatro servidores diferentes conectados a quatro clientes diferentes em quatro caminhos de três saltos. Os quatro pares compartilham um middle hop comum com uma capacidade de transmissão de R = 100 Mbps. Os quatro links dos servidores para o link compartilhado têm uma capacidade de transmissão de R S = 70 Mbps. Cada um dos quatro links do link do meio compartilhado para um cliente tem uma capacidade de transmissão de R C = 40 Mbps por segundo. 


1) Qual é o throughput final máximo possível (em Mbps) para cada um dos quatro pares de cliente para servidor, assumindo que o link do meio é compartilhado de forma justa (isto é, divide sua taxa de transmissão igualmente entre os quatro pares) ?

2) Qual link é o link de gargalo para cada sessão ?

3) Supondo que os remetentes estejam enviando na taxa máxima possível, quais são as utilizações do link para os links do remetente (R S ), links do cliente (R C ) e o link do meio (R) ? 
























Resolução:

1) A taxa de transferência final máxima alcançável é de 25 Mbps.

2) Este é um quarto da capacidade de transmissão do hop médio compartilhado, que é o link de gargalo. A capacidade total de transmissão do salto compartilhado é de 100 Mbps, que é compartilhada igualmente entre os quatro pares servidor-cliente, dando a cada um uma parcela igual de 25 Mbps. Isso é menor que a capacidade de transmissão do primeiro salto de 70 Mbps e também menor que a capacidade de transmissão do terceiro salto de 40 Mbps.

3) A utilização de links de remetentes é de 35,71%. A utilização de links de receptores é de 62,5%. A utilização do link do meio é 100%.

24/03/2021

Comutação de Pacotes e Comutação de Circuitos

 Considere os dois cenários abaixo:

  • Um cenário de comutação de circuitos no qual os usuários do N cs , cada um exigindo uma largura de banda de 20 Mbps, devem compartilhar um link de capacidade de 150 Mbps.
  • Um cenário de comutação de pacotes com usuários N ps compartilhando um link de 150 Mbps, onde cada usuário novamente requer 20 Mbps ao transmitir, mas só precisa transmitir 10% do tempo.



















a) Quando a comutação de circuitos é usada, qual é o número máximo de usuários comutados por circuito que podem ser suportados? Explique sua resposta.

Resolução

Quando a comutação de circuitos é usada, no máximo 7 usuários comutados por circuito que podem ser suportados. Isso ocorre porque cada usuário comutado por circuito deve receber sua largura de banda de 20 Mbps, e há 150 Mbps de capacidade de link que podem ser alocados.

b) Para o restante deste problema, suponha que a comutação de pacotes seja usada. Suponha que haja 13 usuários de comutação de pacotes (isto é, N ps = 13). Esses muitos usuários podem ser suportados em comutação de circuitos? Explicar. 

Resolução:

Não. Sob a comutação de circuitos, cada um dos 13 usuários precisaria ser alocado a 20 Mbps, para um agregado de 260 Mbps - mais do que os 150 Mbps de capacidade de link disponíveis.