Temas
Escolha um tema que ainda não tenha dono e coloque seu nome na frente!


Nro Tema Aluno
01 Algoritmos Euller Henrique
02 API Wellington Silva
03 App Bruno Franco Oliveira
04 Arduino Cairo Cruz
05 Banco de Dados Gabriel O. Souza
06 Barramentos Joao Paulo Gomes
07 BI Elves Silva Menezes
08 BigData Taisy Nogueira Comam
09 BlockChain Felipe Dantas
10 Canvas Prof. Luiz Cláudio
11 Cloud Computing Celio Manoel
12 CLP Gabriel Davi Mendonca
13 Compiladores André Oliveira
14 Conectores Gabriella Lima Nascimento
15 CPU Matheus da Silva Vieira
16 Criptografia Henrique Corrêa Oliveira
17 Data Mining Lucas Souza Suzigan
18 DMA Guilherme Francisco Araujo da Guarda Souto
19 DNS Leonardo Marinho
20 ERP Aline M. S. Franco
21 ETL Hugo Nunes de Souza
22 eXtreme Programming João Marcos Xavier Carneiro Nazareno
23 Firewall Paulo Roberto
24 Firmware Agilson Jr
25 Frameworks Vinícius Pimenta Rossi
26 IA Enilson Sousa
27 IDE Mateus Herrera G. Borges
28 Inteligência Cognitiva Isaque Patricio
29 Integração Contínua João Pedro Alves de Abreu
30 Internet Alexia Andrade
31 IoT Carla Santos
32 IP Robson Gomes
33 IPSec Henrique Aleixo
34 Linguagens de Programação Bruno Matos
35 Machine Learning Rogério A. Silva
36 Memória RAM Gustavo Paes
37 Mineração de Dados Marco Túlio Abdala Franco
38 Modelo Estruturado Joao Vitor Ferreira Eugenio
39 Modelo Orientado a Objeto José Nicolau Martins Ferreira
40 Modem Jefferson C Costa
41 Normalização (BD) Leopoldo Dantas
42 NoSQL Ludymilla Christina Vieira de Oliveira
43 Open Source Henrique Costa Fernandes
44 Plataformas Mateus Duarte Teixeira
45 Portas Mateus Silva Alvarenga
46 Processadores Joao Matheus
47 Protocolos Myke Pedro Paduelo
48 PWA Vinícius Lopes Dias
49 RA Renato Alves Pereira Terceiro
50 Raspberry Douglas Magalhães
51 Redes Sociais Samuel Augusto Meireles da Silva
52 Redes de Computadores Gabriel Resende Carvalho
53 Redes Neurais Breno Henrique de Oliveira
54 Renderização Thiago Pires Ribeiro
55 Roteador João Victor Alves Couto
56 Satélite Victor Hugo Gonçalves de Oliveira
57 Scrum Thiago Fernandes
58 Sistema embarcado Brenda Neves Silva
59 SO Luiz Fernando Rosa
60 Sockets João Vitor Ferreira Eugênio
61 Speech Recognition Danilo Dias
62 SQL Victor Hugo Oliveira
63 Virtualização Julio Cesar Soares
64 Web Vinicius Carvalho Teles
65 Webservice Carlos Henrique
66 Periféricos Wigor Lau de Oliveira
67 Dsco Rígido Wilson Marçal Neto

Pesquisa


Portas


NoSQL


Algoritmos

                                    
  • Conceito:
    • Algoritmos basicamente são instruções concisas e precisas que damos ao computador por meio de alguma linguagem de programação (JAVA, C, C ++, HASKELL etc...). Para o algoritmo ser interpretado corretamente é preciso que ele respeite determinadas regras, as quais são : nenhuma linha pode ser ambígua, pois o computador não consegue interpretar comandos que possuem mais de um significado; além disso, como o algoritmo é executado na ordem em que foi escrito, os comandos devem estar nos lugares certos, isto é, devem ser totalmente ordenados.
  • Metodologia:
    • Para se escrever um algoritmo é preciso somente de um papel ou de um editor de texto, de conhecimentos de lógica e de matemática, e principalmente de um problema a ser solucionado. Após o algoritmo ser escrito em pseudocódigo (algoritmo escrito sem seguir nenhuma regra especifica de alguma linguagem de programação) é possível transcrevê-lo para alguma linguagem de programação se algumas regras especificas da linguagem escolhida forem respeitadas.
  • Como funciona?
    • Os algoritmos podem ser escritos em pseudocódigo, fluxograma ou podem ser escritos diretamente em determinada linguagem de programação. O pseudocódigo serve para que qualquer pessoa que não tenha conhecimentos avançados de programação consiga entender determinado algoritmo. Já o fluxograma é visual e intuitivo, tornando-se assim um jeito ainda mais fácil de se entender um algoritmo.
    • Para que um algoritmo funcione perfeitamente é preciso que um conjunto significativo de casos testes sejam elaborados, após terem sido elaborados devem ser testados em tabelas de rastreamento.
    • Os algoritmos são tão úteis que estão presentes no cotidiano de todos mesmo sem perceberem, até mesmo atravessar a rua é considerado um algoritmo valido:
    • 1.olhe para os dois lados
    • 2.se não estiver vindo carro então
    • 3. | atravesse
    • 4.senão
    • 5. | não atravesse
    • 6.fimse
          


API

  • API - É o acrônimo de application Programing Interface ou, em português, Interface de Programaç;ao de Aplicativos

É o conjunto de padrões de programação de aplicativos e a sua utilização de maneirra não tão evidente para os usuários Application Programming Interface“. No português “Interface de Programação de Aplicações”. Elas são uma forma de integrar sistemas, possibilitando benefícios como a segurança dos dados, facilidade no intercâmbio entre informações com diferentes linguagens de programação e a monetização de acessos. Vamos nos aprofundar mais abaixo para entendermos melhor o que é API. Falaremos sobre benefícios, exemplos de aplicação e contaremos uma breve história do nascimento dessa tecnologia.

  • API na pratica - É como uma ponte que conecta varias plataformas, ou que possibilita inumeras opções, como armazenamento de dados, acesso a funções, entre outros
  • API Segurança - A API pode funcionar como um portõ para acesso, possibilitando assim mais segurança dos dados, pois só recebe um tipo de dado pré consolidado, ou seja só passa informações autorizadas.
  • Exemplo de API é o facebook, que possibilita ao usuario que consiga acessar um site de compras ou até um cadastro no UBER, assim podendo conhecer o usuario melhor como lugares que frequenta, produtos que procura, e facilitar o acesso do seu cliente aos produtos ex: inserindo anuncios em suas redes sociais e divugando promoções de eventos.


 



App


São aplicações para dispositivos móveis, web que rodam sobre sistemas operacionais, onde é feito o gereciamento de todos os processos em execução por um sistema operacional, seja windows, linux, iOs, android,etc...

Através deles você pode ler seus e-mails, conversar com usuários mutuamente, realizar compras através da internet ou por aplicativos desktop como em redes de supermercados. São muito utilizados nos dias atuais em diversas áreas.

Arduino

  • O que é Arduino?
    • O Arduino, foi criado em 2005 pelos pesquisadores: Massino Banzi, David Caurtielles, Tom Igoe, Gianluca Martino e David Mellis. A principal inspiração para a criação da plataforma foi a elaboração de um dispositivo barato, funcional e de fácil programação. Nele foi incorporado o hardware livre, que possibilita a total liberdade do usuário em criar, modificar e personalizar seu Arduino, partido do hardware básico [1].

    • A placa contém em seu hardware um microcontrolador Atmel que comanda os circuitos de entrada/saída, que são responsáveis pela facilidade que essa aplicação oferece. A partir de um computador e a IDE (Integrated Developmente Environment, ou Ambiente de Desenvolvimento Integrado), utilizando uma linguagem que se baseia em C/C++ é possível fazer inúmeros projetos[1].
  • Funcionamento:
    • O funcionamento do Arduino pode ser dividido em três partes:
  • Entrada de dados
    • Linguagem baseada em C/C++.
    • Entrada feita por meio de dois tipos de portas:
      • Portas Digitais: Responsáveis pelo processamento de dados destinado a dispositivos que funcionam a base de 5V(alto), 0V(baixo), como led’s e buzzer’s.
      • Portas Analógicas: Responsáveis pelo processamento de dados, destinados a dispositivos que exigem controle ou gerem resultados com sua saída, podendo ser citados exemplo como: motores, sensores de temperatura, sensores de umidade, entre outros.
  • Intepretação de dados, a placa interpreta o código e faz com que cada porta, tenha sua devida função já programada no IDE.
  • Saída de dados, é o resultado dos outros dois tópicos, a entrada dos dados e a intepretação, assim gerando o resultado esperado [2].

  • Aplicações da Plataforma:
    • Existem diferentes aplicações para o Arduino, sendo uma das plataformas mais versáteis do mercado. [3]
  • Arduino Uno e Leonardo.
    • São basicamente iguais, diferem pelo fato do Leonardo ser SMD(Surface Mounting Device ou Componente Para Montagem em Superfície), e usa o controlador ATmega32u4, o UNO é um CI (Circuito Integrado) tipo comum de 28 pinos que seu controlador é o ATmega328.
  • Arduino Mega.
    • Existem duas versões do MEGA, o ADK e o 2560, ambos usam o controlador ATMEGA2560, a única diferença existente é que o Arduino MEGA ADK tem uma interface USB para se conectar com dispositivos Android, usando o CI MAX3421E que é uma interface SPI(Serial Peripheral Interface) e o controlador Host via USB
    • Erro ao criar miniatura: Arquivo não encontrado
  • Arduino Esplora.
    • Esse Arduino fornece uma série de built-in(embutidos), conjunto de sensores onboard de interação prontos para uso, a principal funcionalidade dele é para pessoas que querem usar o Arduino sem ter que aprender eletrônico/elétrica. No Arduino Esplora existe vários itens onboard de saída, como som e luzes, e vários de entrada incluindo um joystick, um controle deslizante, um sensor de temperatura, um acelerômetro, um microfone e um sensor de luz.
  • Integrações:
    • O Arduino por ser Open-Source, tem uma gama infinita de interações, podendo ser destacadas algumas como:
      • Interação com servos motores.
      • Interação com sensores (temperatura, umidade, pressão...)
      • Interação com outros microcontroladores (raspberry...).
      • Interação com Excel.
      • Interação com Display LED.
      • Interação com Display 7 segmentos.
      • Interação com Shield’s.
      • Ainda pode ser principal componente para a criação de:
      • Robôs Autônomos.
    • Impressoras 3D.
    • Projetos de automação.
  • Estrutura de um programa em Arduino:
    • A codificação de um programa em Arduino segue a ideia de seus idealizadores. Tudo que é necessário para a implementação de um programa é a conexão USB e a utilização do IDE disponibilizado gratuitamente no site do Arduino(https://www.arduino.cc/). Para a programação, não é necessário um alto conhecimento de linguagem C. Além de existir uma vasta biblioteca open source com diferentes exemplos e aplicações. A divisão da programação no IDE funciona com dois blocos, chamados de void:
      • Parte a qual fica responsável pela configuração das opções inicias do programa, valores de variáveis, se uma porta será entrada ou saída, mensagens para o usuário, etc.
  • Parte responsável pela repetição da estrutura de comandos de forma contínua, ou até que alguma condição faça com que a mesma designe o Arduino a parar[1].
  • Exemplo de Aplicação:
    • Nesse vídeo temos o funcionamento do Arduino em um veiculo totalmente autônomo:

https://www.youtube.com/watch?v=hAAiZWwDQcY

Banco de Dados


  • Conceito:
    • O banco de dados nada mais é que um conjunto organizado de informações que se relacionam com o propósito de armazenar, recuperar e também organizar essas tais informações. Um exemplo bastante simples é uma lista telefônica que pode ser armazenada em seu computador ou pode ser alterada manualmente em um bloco de papel, você adiciona informações como, nomes de contatos, números, endereços, sendo assim, pode ser considerada um banco de dados. Também temos o Sistema de Gerenciamento de Banco de Dados (SGBD) que prioriza o usuário a criar um banco de dados e que facilita o compartilhamento de dados, ou seja, informações com outros usuários, os SGBD mais utilizados são o Oracle, Sql e também o Mysql e etc.
Erro ao criar miniatura: Arquivo não encontrado
  • Metodologia:
    • Um Banco de Dados bem criado, retribui informações essenciais ao usuário de forma organizada e que também possa se adaptar para necessidades futuras, como por exemplo, achar um endereço atualizado de um amigo, observar preços, promoções entre outras coisa que estão presentes em nosso cotidiano, ou seja, você passa as informações no banco de dados e também recebe informações.
  • Funcionamento:
    • O banco de dados consiste de uma abstração que é feita a partir de três processos, a visão do usuário, o nível conceitual e o nível físico. A abstração recolhe informações para cada necessidade de algum usuário para poder simplificar o banco de dados.Para projetar um banco de dados temos que colocar em consideração três tipos de modelo, o modelo conceitual, modelo lógico e modelo físico.
Erro ao criar miniatura: Arquivo não encontrado
  • Modelos:
    • Modelo conceitual demonstra em um diagrama chamado de Diagrama Entidade e Relacionamento (DER) os fatos do mundo real, suas propriedades e seus relacionamentos e também seus argumentos.
    • Modelo lógico é uma coleta de informações sobre as necessidades do usuário , ou seja, ela coleta essas informações, junta todas elas e determina se todas essas informações foram reunidas.
    • Modelo físico mostra como esses dados vão ser armazenados, é neste processo em que o banco de dados realmente é feito com a ajuda de um software (Oracle, Sql, Mysql, etc).

Barramentos


Definição Pode se definir barramentos como vias de comunicação onde o processador se comunica com o seu exterior (memórias, placas de videos, hds, etc.). É possível que seja definido também como um conjunto de sinais elétricos transmitidos através das trilhas ou vias da placa mãe com o mesmo objetivo.

Barramento local •É por onde o processador se comunica com os principais dispositivos da placa mãe, tal como a memória RAM, cachê, etc.

Barramento de dados Exercem a função de transportar os dados tanto enviados quanto recebidos, obedecendo instruções ou ordens emitidas por programas e dados de informaçoes básicas .

Barramentos de endereço •Indica o endereço de memória dos dados, ou seja, as posições a serem acessadas na memória, ou seja, o local onde o processo deve ser extraído e onde deve ser enviado depois do processamento.

Barramento de controle •Regula as outras funções, limitando ou expandindo de acordo com sua demanda. Ele também é responsável por fazer a transferência de sinais (de controle) como READ, WRITE, HOLD, de inicio de operação aritmética, de interrupção, de sincronização, de reciclagem (reset) entre outros.

Barramento de expansão •Com ele conectamos os periféricos ao micro, tal como placa de video , som, etc.

ISA (Industry Standard Architecture) •O ISA foi o primeiro barramento de expansão. O barramento ISA é extremamente lento, pois transmite apenas 8.33 MB/S, na teoria, mas na prática ele transmite realmente 5 MB/s.

Barramento EISA •Ele é muito parecido com o ISA, mas com algumas diferenças físicas e lógicas. O slot é mais alto e possui duas linhas de contatos. O barramento EISA operava com uma velocidade de 8.33 MHz, mas como trabalha com transferência de 32 bits , seu desempenho pode ser 4x mais rápido que o ISA.

Barramento VLB (Vesa local bus) •Surgiu como barramento próprio para placa de vídeo na época, pois os aplicativos gráficos já eram populares. Devido a sua velocidade e por ser mais rápido do que o Isa e eisa , o VLB ganhou espaço também em outros dispositivos, como controladoras IDE e SCSI. •Em 1992 o barramento VLB teve seu fim, com a criação de um novo barramento chamado PCI.

Barramento PCI(interconector de componentes periféricos) •O barramento PCI faz uma especie de ponte entre o chipset ponte norte e o ponte sul, isso fazia com que o barramento fique sufocado. O barramento PCI trouxe um recurso muito importante para o desempenho do PC , que foi suporte à Bus mastering, que é um sistema avançado de acesso direto à memória,com isso ele permite que HD`s, placas de vídeo e outros dispositivos gravem informações diretamente na memória, sem precisar passar pelo processador e assim dando agilidade ao sistema.

Barramento AGP(porta de aceleração grafica ) • A primeira versão do AGP tinha capacidade máxima de transferência de 266 MB/s, mas essa taxa evoluiu na segunda e na terceira versão do barramento, chegando a 533 MB/s e 2.133 MB/s, no entanto, ela não compartilha a mesma taxa de transferência com os demais periféricos ali plugados, como fazia o seu antecessor.

Barramento PCI express Existem várias versões , o que muda é a quantidade e velocidade de dados que serão enviados. • A primeira foi criada em 2004, cotendo 16 caminhos de transmissão de dados (16x), um slot PCI-Express pode realizar o tráfego de até 4 GB/s, sendo assim , a última versão lançada é o PCI Express 4.0, aproximadamente 2 GB/s de largura de banda por linha (x1). Isso significa que dispositivos x16 podem alcançar taxa máxima teórica de 32 GB/s em cada direção. Como o padrão trabalha em modo full duplex (recebe e envia dados ao mesmo tempo), chegamos à taxa de 64 GB/s

Referências • http://blog.maxieduca.com.br/barramentosentrada-e-saida/https://br.ccm.net/contents/368-barramento-de-computadorhttps://www.infowester.com/barramentos.phphttps://www.cursosdeinformaticabasica.com.br/o-que-sao-barramentos/

BI

Business Intelligence (BI)

  • Business Intelligence, Inteligência de negócios traduzindo ao pé da letra, é um conjunto de metodologias, processos, tecnologias e estrutura para organizar e transformar uma grande quantidade de dados em informações úteis, auxiliando na otimização de falhas e numa boa gestão.
  • Seu principal objetivo é dar suporte na interpretação e análise de dados e informações, ajudando na identificação de oportunidades ou riscos, o BI auxilia na tomada de decisões e no monitoramento de resultados, é uma forma de agrupar e explorar dados afim de identificar vantagens para o negócio.
  • O BI é a integração do negócio, do gerenciamento e da TI.

  • As empresas podem, utilizando as técnicas do BI, conduzir uma reestruturação de seus processos, com os dados obtidos é possível criar padrões e prever tendências, permitindo antecipar situações de risco.
  • O BI funciona utilizando de ferramentas que acessam os dados coletados e após sua transformação, decodificação e interpretação, por parte de um analista, apresenta descobertas em forma de gráficos, mapas, resumos e relatórios. Essas informações são compartilhadas dentro da empresa e irão auxiliar a organização a criar um planejamento estratégico para construí vantagens competitivas, agregando valor ao negócio e fazendo uma empresa mais inteligente.
  • Vantagens do Business Intelligence
    • Existem inúmeras vantagens de empregar ferramentas de BI, entre elas destacam-se a maior velocidade e qualidade na tomada de decisões, maior eficiência das operações e otimização de processos.
    • Com o BI será possível ter acesso a um panorama geral da empresa, pois sua ferramenta facilita a visualização de análises e relatórios de processos. Dessa forma as decisões serão pensadas de forma estratégica e inteligente em questões de minutos.
    • Suas ferramentas identificam tendências de consumo e mudanças no comportamento do público-alvo, auxiliando:
      • Na detecção de oportunidades de negócios;
      • No desenvolvimento e lançamento de novos produtos;
      • Na ampliação de receitas;
      • Na conquista de novos clientes e mercados.
  • Pilares do BI Business Intelligence
    • #Coleta de dados: todas as informações e dados da empresa são coletados. São determinadas características como produtividade; oportunidades; reputação etc.
    • #Organização e análise: os dados e informações recolhidos são analisados e organizados em bancos de dados, facilitando a visualização dos gestores.
    • #Ação e monitoramento: os responsáveis tomam decisões baseadas nas informações analisadas e monitoram seus resultados.
  • Como aplicar o Business Intelligence?
    • São 3 pontos básicos para criar uma estratégia eficiente de Business Intelligence dentro do ambiente corporativo.
      • #Dados confiáveis e de qualidade: para ser bem-sucedido, é necessário estar muito atento à qualidade das informações utilizadas nos processos de BI. Elas precisam ter fácil interpretação e acessibilidade. O local em que essas informações serão salvas é muito importante, deve possuir uma infraestrutura de qualidade, capaz de entregar os registros com integridade e agilidade. O acesso deve ser restrito para a segurança do negócio.
      • #Visão clara dos objetivos: os analistas responsáveis pela estratégia na empresa devem ter uma visão clara dos objetivos para que a análise seja bem executada. Saber as metas do negócio, seus pontos fortes e fracos e suas necessidades. Assim, será possível coletar dados na internet, analisar e-mails, bancos de dados da empresa, entre muitas outras fontes.
      • #Mudança de acordo com a meta do negócio: é fundamental detectar a origem dos problemas e identificar como otimizar a rotina de trabalho da empresa. Realizando uma análise detalhada de atividades e informações internas, o processo de tomada de decisão se tornará mais eficiente.
  • Fonte:

BigData


BlockChain


  • Conceito
    • O BlockChain é uma tecnologia que utiliza um registro compartilhado e imutável para garantir segurança ao processo. A ideia de BlockChain surgiu primeiramente no artigo Bitcoin: A Peer-to-Peer Eletronic Cash System por Satoshi Nakamoto ao definir uma moeda digital como uma cadeia de blocos com assinaturas digitais em que cada bloco possui sua assinatura e o próximo possui sua própria assinatura digital mais a assinatura digital do bloco anterior, como ilustra a imagem:
  • Usos do BlockChain
    • O primeiro uso de uma BlockChain foi na criação da Bitcoin, uma moeda virtual descentralizada. A bitcoin não possui um valor inerente, seu valor está relacionado ao quanto as pessoas estão dispostas a pagar por ela. Atualmente o preço de uma bitcoin é cerca de R$25000,00, isso acontece principalmente pelo fato de que todas as moedas e todas as transações ficarem registradas em uma BlockChain, aumentando sua segurança. Por exemplo, uma pessoa não pode gastar a mesma bitcoin duas vezes, porque se ela é gasta uma vez, isso fica registrado em todos os outros blocos.
    • Apesar do BlockChain ter surgido com o Bitcoin, atualmente existem várias outras utilidades, uma forma de ilustrar a relação entre BlockChain e Bitcoin é pensar no BlockChain como um sistema operacional e o Bitcoin apenas um programa que pode ser utilizado nesse sistema. Uma BlockChain pode ser utilizada para várias outras soluções, como o caso da IBM BlockChain, segundo a propria IBM: “A nova rede da IBM pode possibilitar que um agricultor na Samoa [país da Oceania] faça uma transação com um comprador na Indonésia. O blockchain seria usado para registrar os termos do contrato, gerenciar a documentação do comércio, permitir que o agricultor forneça uma garantia, consiga letras de crédito e finalize a transação com pagamento imediato”
Erro ao criar miniatura: Arquivo não encontrado
    • Alem desses exemplos, a BlockChain está presente em vários outros setores, como bancos, seguros e logística.
  • Como funciona?
    • Para entender como funciona uma BlockChain é necessário primeiramente entender a diferença entre uma rede centralizada e uma rede distribuída. Em uma rede centralizada, todas as partes dependem de uma parte central. Exemplo: ao comprar algum produto em uma loja, a transação é intermediada por um banco, que garante que o comprador pagou o vendedor e o vendedor entregou a mercadoria, nesse caso o banco é a parte central. Em um sistema distribuído, usando o mesmo exemplo anterior, ao fazer uma compra, todas as partes da rede registram que a compra foi feita e a mercadoria foi entregue corretamente, ou seja, para fraudar uma rede central, basta que a parte central seja fraudada, já em uma rede distribuída, todas as partes precisariam ser fraudadas.
Erro ao criar miniatura: Arquivo não encontrado
    • Tomando como exemplo a bitcoin, uma BlockChain funciona da seguinte maneira:
    • Cada bloco contem informações de transações financeiras, como quem realizou as transações, qual o valor das transações, alem disso cada bloco possui seu próprio hash e o hash de todos os blocos anteriores. No exemplo da imagem acima, o bloco 3 contém o hash do bloco 2 além do seu proprio hash. Hash é um tipo de identidade do bloco, que prova que ele é unico. No caso da bitcoin, para criar um novo bloco, existe um processo chamado "mineração", em linhas gerais, são vários computadores pelo mundo inteiro tentando resolver um problema matemático extremamente complexo, quando um computador resolve o problema em questão, todos os outros confirmam que o problema de fato foi resolvido, assim criando um novo bloco. Pelo fato do BlockChain ser uma rede distribuída é praticamente impossível que seja criado um bloco falso, pois o processo de validação é feito por centenas de milhares de computadores.

Canvas


  • Conceito:
    • O Business Model Canvas é uma ferramenta estratégica que contribui de forma significativa para a construção rápida e visual de novos sistemas, produtos ou serviços. Sua aplicação consiste no uso de um painel dividido em nove grandes blocos, como mostra a figura abaixo, que representam os elementos fundamentais (building blocks) que compõem um modelo de negócio. O objetivo central do preenchimento do painel é extrair propostas de valor que atendam e potencializem os principais objetivos desejados do projeto, antes de partir de fato para a formatação final do que pretende ser construído. Abaixo apresentamos a dinâmica de montagem do Modelo Canvas sugerida por Osterwalder.
  • Metodologia
    • Para aplicar o Canvas, pode-se utilizá-lo impresso em um tamanho A4 ou A3 para facilitar o trabalho colaborativo; utilizar um dos muitos softwares para criação ou desenhá-lo em um quadro, pois seu layout é simples de ser replicado. Para preencher o Canvas é recomendado utilizar post-its, pois são fáceis de manipular. 
  • Como funciona?
    • O Canvas, apresentado na figura abaixo, pode ser subdividido em duas grandes dimensões, como nos lados direito e esquerdo do cérebro, sendo a dimensão mais à direita os elementos mais subjetivos e "emocionais" e os elementos da parte esquerda os mais estruturais e lógicos. Sugere-se preencher o Canvas da direita para a esquerda, pois assim é possível conhecer primeiro os anseios e desejos dos envolvidos para, em seguida, começar a defini-los de forma mais concreta.
      • Fonte: business model generation


Cloud Computing


  • Conceito:Cloud computing é nada mais que a utilização da computação como um serviço ao

invés de um produto,onde se compartilha recursos, fornecendo informações e software permitindo o acesso através de qualquer computador, notebook ou aparelho celular conectado a internet. Além de ser utilizado como armazenamento de computadores e servidores compartilhados através da internet seguindo o modelo de computação em grade.





  • Como funciona? A nuvem basicamente se baseia no mesmo formato de um banco, por exemplo: Todas as finanças e objetos de valor de um usuário na maioria das vezes são necessárias serem guardadas em um banco, a nuvem fornece quase a mesma função, que é a capacidade de armazenar seus dados de modo seguro e prático.O funcionamento também pode ser dividido em diferentes modelos, que é:





  • Privada: Surge quando é construída uma computação na nuvem apenas para um usuário,na intenção de armazenar os dados do usuário e a segurança de acesso, tendo uma nuvem privada.






  • Publica: As aplicações necessárias são direcionadas para o uso de pessoas e empresas que compartilham todos os componentes.




  • Híbrida: É quando se usa mais de um tipo de serviço, fazendo com que uma empresa por exemplo, possa deixar sua Cloud privada, rede fechada e fazer também com ela fique pública para que em momentos em que a capacidade necessita de ser multiplicada e a estrutura privada for insuficiente.



CLP

  • CONCEITO


CLP (controlador lógico programável) é um tipo especial de computador muito utilizado não somente na indústria , mas em controle de máquinas e processos em diferentes aplicações . Composto por uma CPU que compartilha vários termos em comum de um PC , ele desempenha varias funções de controle através de softwares e hardwares .

Ele foi projetado para trabalhar em condições industriais extremas e ambientes agressivos , possuindo uma característica também de ser flexível ,possibilitando a inserção de módulos de entradas e saídas.


  • COMO FUNCIONA ?


Componentes modulares que compõe um CLP podem ser divididos em quatro áreas principais:

Backplane ou rack com fonte de alimentação , a unidade de processamento central (CPU) , as seções de entradas e saídas , os ClPs de mercado possuem diferentes formatos e tamanhos . Os controladores menores geralmente são concebidos com entradas e saídas fixas podendo variar de 4 a 6 entradas/saídas até 256. o rack é capaz de agregar partes distintas para compor um sistema . Eles são chamados modulares porque o rack é capaz de aceitar módulos com diferentes configurações e diferentes I/Os ( entradas e saídas ) que podem ser encaixados ou desencaixados facilmente do backplane ou rack. Consequentemente , um CLP desse tipo por permitir a customização torna-se uma boa opção pois é capaz de atender diferentes configurações e abranger tanto aplicações pequenas quanto às maiores e mais complexas .


  • COMPOSIÇÃO DO CLP


  • Memória: área do CLP onde ficam armazenadas todas as informações necessárias para que as atividades sejam executadas.


  • Cartão de entrada: recebe um sinal elétrico do ambiente externo e envia para dentro do CLP


  • Processador: é um chip que irá processar o programa.


  • Cartão de saída: envia um sinal elétrico para o ambiente externo para adicionar algum equipamento


  • Barramento: é uma placa eletrônica responsável por fazer a comunicação entre os componentes descritos acima


  • Fonte de energia: alimentação do equipamento

Erro ao criar miniatura: Arquivo não encontrado




Compiladores

  • O que é
    • Compilador, é um programa que transcreve um programa escrito em linguagem de alto nivel (código fonte) para um equivalente em baixo nivel (forma binaria, conhecida como codigo objeto).
  • Componentes do compilador
    • O compilador opera em uma sequencia de partes, onde cada parte possui uma funcão específica.
    • 1. Análise léxica : A primeira fase do processo de compilção é conhecida como "Análise léxica" ou "scanner". O analisador léxico atua lendo os caracteres do código fonte e verifica se eles pertencem ao alfabeto da linguagem, os comentários e espaços em branco são descartados. Ao final desse processo é formado uma sequencia de token (símbolos) que serão enviadas e processadas na próxima fase do processo, a Analíse Sintática.
    • 2.Análise Sintática: A segunda fase do processo de compilação, conhecida como "Análise Sintática" ou "parser", tem como função determinar se a sequencia de tokens formada na etapa anterior possui comandos válido a linguagem de programação.
    • 3.Análise Semântica: A terceira fase do processo de compilação, conhecida como "Análise Semântica", ela tem como função analisar as instruções e comandos para garantir a integridade e coerencia do programa para que possa ser convertido para baixa linguagem (código de máquina).
    • 4.Geração de código intermediário: Nesta fase do processo é gerado uma sequência de código, quer posteriormente gerará o código objeto. Esta fase pode não existir, e a compilação ser feita diretamente para o código objeto final. Porém há vantagens em se produzir um código intermediário, como a possibilidade de se obter uma melhor otimização no código final.
    • 5.Otimização de código: Esta fase tem como função otimizar o código em termos de consumo de memória e velocidade de execução do programa.
    • 6.Geração do código objeto: Esta é a última fase do processo, onde após a verificação de que não há erros sintático e semanticos o compilador cria o programa objeto que é coeso com o código fonte.


Conectores


CONCEITO:

Conector, é um dispositivo que efetua a ligação entre um ou mais pontos onde se necessita de comunicação de sinais (por exemplo, entre um computador e um periférico). Existem vários tipos diferentes de conectores. Os mais conhecidos são os RCA que são geralmente utilizados para fazer a ligação entre aparelhos de TV, videocassetes, DVD Players, e até mesmo placas de vídeo de computadores. Também existem conectores de cabos de rede de computador, conectores VGA (mais utilizados para conectar a placa de vídeo de um computador a um monitor), conectores SVGA (também utilizados para conexão entre placas de vídeo de computadores e monitores, porém também pode conectar TV, projetores, DVD, etc). No século XXI, os conectores começaram a ser substituídos graças à tecnologia wireless (interligação sem fio de equipamentos). Hoje se encontra no mercado vários equipamentos com esta tecnologia, desde placas de rede, caixas de som, mouses, teclados, microfones, DVD, TV, videogames.


FUNÇÃO DO CONECTOR:

  • Eliminar ou diminuir a quantidade de emendas de fios dentro de caixas de passagem / derivação.
  •  Facilitar e simplificar o trabalho dos eletricistas, para que sejam usuários de inovações tecnológicas.
  • Evitar isolamentos perigosos, imperfeitos.
  • Otimizar e manter a qualidade dos contatos elétricos. (Um mau contato eleva o valor da conta e é sempre causa de acidentes)
  •  Viabilizar aferição, inspeção, verificação, manutenção e reparo nos pontos de junção de condutores. (Esta tarefa sempre foi dificultada pelo uso de emendas)
  • Proporcionar componente alternativo para a multiplicação de pontos de energia.
  •  Evidenciar estética, praticidade, segurança.
  •  Contribuir para a eficiência energética nas instalações elétricas residenciais, comerciais ou similares.


* Mais informações:

https://www.fazfacil.com.br/reforma-construcao/conectores-fios-cabos/2/

CPU


  • Conceito:>
    • CPU significa Central Processing Unit ( Unidade Central de Processamento). Processadores ou microprocessadores são, basicamente, circuitos integrados que possuem transistores os quais são interruptores de sinais elétricos que recebem instruções, as processam e as enviam para outros componentes do computador. Por conta disso a CPU também é conhecida como o “cérebro do computador”.

  • Componentes principais:
    • Uma CPU é composta por três componentes principais:
      • Unidade Lógica e Aritmética (ULA): É responsável por executar todas as operações aritméticas e lógicas, como: testes lógicos (operações booleanas), adição, subtração, multiplicação e divisão.
      • Unidade de Controle (UC): É a unidade que extrai instruções da memória e as decodifica e executa requisitando a ULA quando necessário. Algumas funções básicas da unidade de controle são: controle da entrada e saída de dados, decodificação dos dados, interpretação de cada intrução de um determinado programa, análise das instruções dos programas, etc.
      • Registradores: São aréas de armazenamento de alta velocidade e que estão localizadas dentro da CPU. Essas aréas funcionam sob direção da Unidade de Controle (UC) que recebem, guardam e transferem instruções ou dados.

Criptografia

  • Conceito
    • Criptografia é a técnica de transformação da escrita, sua finalidade é a entrega de mensagens que sejam reconhecidas apenas por quem vai recebê-las, evitando assim a interceptação das mesmas por terceiros. A criptografia é usada desde a Roma antiga, com as Cifras de César usada para fazer comunicação com o exército, até os dias atuais com a evolução de computadores,onde é amplamente utilizada para transações bancárias, em sistemas de senhas de e-mail e para segurança de dados específicos e informações.
  • Encriptar é o ato de transformar algo, como um texto simples, em algo ilegível, que é chamado de "cifra" ou "texto cifrado".
  • Decriptar é o inverso, onde o que foi codificado é decifrado e decodificado.
  • Algoritmo de criptografia é a sequência de procedimentos matemáticos utilizada para cifrar e decifrar os dados sigilosos.
    • Exemplos de algoritmos de criptografia:

RSA, MD5, IDEA, DES, RC5, AES, SHA-1

  • Chaves na criptografia atualmente são números ou conjunto de números capazes de cifrar uma informação, e é necessário uma chave correta para decifrá-los.

Existem algoritmos que usam de:

  • Criptografia Simétrica
    • Método que utiliza da mesma chave para encriptar e decriptar uma informação.É uma criptografia mais simples porém é mais vulnerável não recomendada para informações valiosas.
  • Exemplos de utilização de chaves simétricas:

-RC (Ron's Code ou Rivest Cipher): criado por Ron Rivest na empresa RSA Data Security, esse algoritmo é muito utilizado em e-mails e usa chaves de 8 a 1;024 bits. -DES (Data Encryption Standard): criado pela IBM em 1977, o DES usa chaves de 56 bits, permitindo até 72 quatrilhões de combinações. -DEA (International Data Encryption Algorithm): criado em 1991 por James Massey e Xuejia Lai, o IDEA é um algoritmo que usa chaves de 128 bits

  • Criptografia Assimétrica
    • O método utiliza-se de duas chaves, uma chave criada para a encripitar uma informacão, chamado de "chave pública", que deve ser enviada a quem vai criar a mensagem codificada, e outra chave secreta chamada de "chave privada", utilizada para decriptar a chave pública. Também existem casos de Criptografia assimétrica reversa onde é usado a chave privada para encripitar um dado e uma pública para decriptar o algoritmo e revelar a mensagem.
  • Exemplos de utilização de codificação em chaves Assimétricas:

-RSA (Rivest, Shamir and Adleman): criado em 1977 nos laboratórios do Massachusetts Institute of Technology (MIT) O algoritmo utiliza de números primos multiplicados entre si (chave privada), para obter um terceiro valor(a chave pública no caso)

O whatsapp utiliza os dois métodos para criptografar as mensagens entre os usuários em um sistema chamado criptografia de ponta a ponta, onde apenas os envolvidos na conversa terão suas respectivas chaves.

Data Mining


  • Conceito:
    • Data Mining (DM), ou Mineração de Dados, é um termo recente na ciência da computação, porém tem sido uma ferramenta muito útil devido ao grande volume de informação existente. É um processo que consiste em explorar, analisar e processar dados em busca de padrões consistentes e relacionamentos sistemáticos entre variáveis com o objetivo de criar novos subconjuntos de dados utilizando a estatística e técnicas como IA, recuperação de informação e reconhecimento de padrões.
  • Etapas:
    • O Data Mining é dividido em basicamente três etapas:
      • Exploração: processo no qual o principal objetivo é definir o problema a ser resolvido, além de coletar, descrever, explorar e testar a qualidade dos dados.
      • Construção do modelo e definição do padrão: processo responsável por escolher uma técnica de modelagem que garanta a solução do problema.
      • Validação e verificação: é o processo mais importante do DM pois é onde é avaliado se a Mineração de Dados alcançou o resultado esperado, e também é feita a implementação dos resultados obtidos nos bancos de dados.
  • Áreas de aplicação da DM:
    • São inúmeras as aplicações do Data Mining por todo o mundo como supermercados, telemarketing, bancos, vestibulares, ou seja, essa técnica está bem mais presente no nosso dia-a-dia do que pensamos.


Disco Rígido


DMA

  • Do inglês Direct memory acess (Acesso direto à memoria).
    • É um recurso dos computadores modernos que possibilita alguns dos componentes hardware um acesso direto a memoria RAM, sem depender assim da CPU, dessa forma não a chance de ocorrer o sobrecarregamento do processador.
    • Este recurso torna a transferencia de dados muito mais rápida. Essencialmente ele copia um bloco de memória de um dispositivo para outro, diferente do barramento em ISA, a transferencia é realizada pelos controladores de DMA que fazem parte do chipset da placa mãe. Ele funcionava nos computadores da seguinte forma, existem 8 canais de dma numerados de 0 a 7, esses canais devem ser usados de forma única por cada periférico para que não venha haver conflitos, canais de 0 a 3 trabalham a 8 bits nos demais é realizada transferência a 16 bits. A porta 2 era reservada pelos controladores de disquete, já a porta 3 era utilizada pela porta paralela.
    • O principal problema dos DMAs é que com o passar dos anos sua tecnologia caiu em desuso principalmente com o advento dos barramentos modernos como o em PCI que trouxe a tecnologia de Bus Mastering que liga periféricos que exijam mais do processador diretamente a memória, outro problema e que com o desenvolvimento do hardaware de computador tornou-se necessário o surgimento de novas tecnologias principalmente em 32 bits que suportassem a transferencia de dados.
  • Fontes:


DNS


  • Domain Name System (Sistema de Nomes de Domínios)
    • Hoje, um usuário comum da internet acessa pelo menos 20 endereços web diariamente – facebook, google, uol, entre outros. Agora imagine esse mesmo usuário acessando sites decorando várias e várias sequências de números. Por exemplo, se eu for acessar o meu email e ao invés de eu apenas escrever “www.hotmail.com” no meu navegador, eu estivesse que decorar o IP (Internet Protocol) do Hotmail? Seria um trabalho árduo diário para qualquer pessoa, por isso foi criado o DNS.
  • Conceito:
    • Os Sistemas de Nomes de Domínio são servidores que atuam na tradução e na identificação dos endereços IP’s que o navegador deve acessar.São enormes bancos de dados que estão estabelecidos em servidores em inúmeras partes do mundo.


ERP


ETL


ETL é acrônimo para Extract, Transform, Load (do inglês: extração, transformação e carregamento ou carga). Refere-se ao processo de extração de dados de fontes externas (extract), aplicação dos mesmos nas regras de negócio da entidade com a qual se esta trabalhando, além da "higienização" dos dados (transform) e o carregamento destes em um DataWarehouse (load). Este processo está intimamente ligado à criação de um de um DataWarehouse, sendo portanto uma das fases mais críticas da criação de um BI.

Metodologia: As etapas deste processo se dão da seguinte forma:

  • Extract: Os dados são extraídos de diversas fontes externas, não possuindo uniformidade. Nesta etapa, são definidos quais dados serão úteis e quais dados irão compor o DataWarehouse. Após a seleção e união destes dados, eles são importados para o sistema que cuidará da parte de transformação;
  • Transform: Nesta etapa os dados são tratados, transformados e uniformizados de acordo com as necessidades da organização a qual o processo está sendo aplicado. Desta forma, podem ser exemplos: quebras de colunas em duas ou mais colunas, correção de erros de digitação, padronização de valores e/ou unidades de medida e assim por diante. Esta etapa deve ser supervisionada por todos aqueles aos quais esse processo possa interessar. Tomando como exemplo um ambiente empresarial, caso fosse necessário a tratativa da informação "vendas por regional", também como exemplo, a informação "o que é venda" deveria ser conciliada entre o contador, o financeiro, o vendedor e o CEO - pois para cada um destes, "venda" pode significar uma coisa diferente, ocasionando posteriormente uma divergência de valores no DW.
  • Load: Nesta etapa os dados são carregados para o DW destino. A etapa de carregamento pode variar para diferentes ocasiões. Os sistemas podem manter um histórico ou não, podem manter um cache ou não, e a periodicidade de atualização dos dados pode ser diversa, e estes são apenas alguns exemplos.
  • Também é importante mencionar que atualmente existem diversas ferramentas que auxiliam neste processo no mercado. Dentre vários outros, são exemplos: Data Stage IBM, POWER CENTER, Microsoft Integration Services.

eXtreme Programming

  • Criado em 1997, é uma metodologia ágil de desenvolvimento de software, consistindo em levar ao extremo as chamadas “praticas boas”. Possui 5 valores e princípios, denominados:
  • Valores: -Comunicação
-Simplicidade
-Feedback

-Coragem -Respeito

    • Princípios: -Feedback rápido

-Presumir simplicidade -Mudanças incrementais -Abraçar mudanças -Trabalho de alta qualidade


Firewall

  • Conceito:
    • Firewall é um sistema de segurança que controla o trafico de dados entre uma rede local e uma rede externa (Internet). Firewall pode ser tanto um software quanto um hardware mas é ele quem vai filtrar os dados e decidir o que pode passar e o que não pode. Todo firewall possui um conjunto de regras para analisar esse trafico que podem já estar pre-estabelecidas ou serem configuradas pelo dono da rede local.

Vale frisar uma coisa Firewall NÃO é Antivirus, são duas coisas diferentes.

  • Como Funciona:
    • Como já dito anterior todo Firewall possui um conjunto de regras (Politicas do Firewall), portanto todo fluxo de dados que entra e sai deve passar pelo Firewall e essas informações serão analisadas devendo estar de acordo com as especificações da rede.
    • Para melhor entendimento pense que firewall é como um porteiro de um prédio permitindo a entrada e saída.
  • Alguns Tipos de Firewall:
    • Filtragem de pacote:
      • Basicamente esse tipo de firewall vai verificar o conteúdo de cada pacote e comparar com cada regra e assim liberando ou não a entrada do mesmo.

    • Proxy Firewall
      • É um intermediário entre uma rede local e a internet, ele impede que as duas redes se comuniquem diretamente entre si.


Firmware


  • Conceito

Firmware é um software, ou um conjunto de softwares, que vêm armazenados na memória do equipamento desde a fábrica, e que contém instruções e comandos para controlar determinado aparelho ou equipamento, como por exemplo, uma câmera fotográfica. Também conhecidos pela nomenclatura “software embarcado”, os Firmware são um conjunto de instruções operacionais que são programadas diretamente no hardware de equipamentos eletrônicos. Os códigos transcritos por este tipo de programa residente são fundamentais para iniciar e executar os hardwares e os seus recursos, fornecendo informações idênticas sempre que o dispositivo for ligado.

Desta forma, esta espécie de “sistema operacional” de aparelhos eletrônicos estará gravada diretamente no chip de memória de seus hardwares, mais especificamente nas memórias PROM e EPROM (memória somente leitura programável e memória somente leitura apagável, respectivamente).

  • Funcionamento

Todos os firmwares encontrados em aparelhos eletrônicos funcionam como um manual de instruções pré-definidas dos aparelhos. No mouse, por exemplo, o firmware funciona basicamente como o SO do seu computador, que é executado no processador, mas que também passa ao processador todas as instruções de funcionamento. A diferença é que o firmware só serve para operações internas no mouse, como macro, luzes, ação de cada botão. Usando as informações armazenadas no firmware, o chip de processamento do mouse sabe exatamente o que fazer e como proceder em cada ação do usuário.

  • Estágio de evolução


Falando em updates e estágio de complexidade dos firmwares, podemos utilizar o mesmo exemplo de um mouse gamer, já que a atualização de um firmware pode servir tanto para trazer novidades de funções, bem como para corrigir algum bug de execução das funções. Isso faz com que a evolução seja constante para todo tipo de aparelho ou periférico eletrônico que utilize funções mais complexas.

  • Interações

Todo aparelho eletrônico possui um firmware que possui suas funções pré-definidas/programadas desde a fabricação. Um mouse gamer, um telefone celular, motherboard, projetor e etc.

    • Referências

https://www.tecmundo.com.br/mouse/69384-tras-cliques-entenda-funciona-firmware-mouse-gamer.htm

https://www.techtudo.com.br/dicas-e-tutoriais/noticia/2014/04/firmware-o-que-e-e-como-atualizar.html





Frameworks

  • Usar frameworks é algo que já faz parte do dia a dia da maioria dos desenvolvedores, especialmente de quem trabalha com um grande número de projetos que usam funções similares. Afinal, a possibilidade de reutilizar códigos com poucas alterações ajuda a poupar tempo.

Isso porque, o framework dá uma caixa de ferramentas para o programador que vai além do que é oferecido pela linguagem. Seu conceito, porém, pode ser confuso em relação a outras formas de aproveitar códigos em vários projetos, como a orientação a objetos e as classes. Basicamente, é um template com diversas funções que podem ser usadas pelo desenvolvedor. Com ele, é desnecessário gastar tempo para reproduzir a mesma função em diferentes projetos.

Uma boa comparação é a da caixa de ferramentas. Só que, em vez de chaves de fenda e martelos, há bases para formulários de login, validação de campos e conexão com bancos de dados.

Nesse sentido, como parte da tendência de buscar reduzir custos e aumentar a produtividade, o uso desse recurso tem se tornado cada vez mais popular. Hoje, já existe uma grande variedade de soluções disponíveis para as mais diversas linguagens, com comunidades que testam e a criam diferentes funções.


IA

  • Conceito:
    • Inteligência Artificial é um tema que possui várias definições e especificações, mas dentre essas várias, a mais simples e que abarca as tecnologias atuais no geral, se refere a Inteligência - semelhante à desempenhada por nós, seres humanos - exibida e praticada por máquinas ou sistemas e softwares.
    • Esse termo, tal qual sua aplicação, também se refere ao campo de estudo e ramo da Ciência da Computação que se submete ao estudo do comportamento racional aplicado aos computadores, ou em outras palavras, o estudo de como fazer as máquinas efetuarem tarefas que na atualidade os humanos fazem com excelência. A pesquisa desse ramo é muito especializada, incluindo em seu âmbito a programação e concepção de computadores para determinadas características, tais como raciocínio, solução de contratempos, assimilação, aprendizagem e capacidade de manipular e mover objetos.

  • Objetivo:
    • O pricipal objetivo de um determinado sistema de IA é dar à uma máquina específica a capacidade de determinar qual das várias possibilidades pré-estabelecidas é a melhor para aquele determinado fim.

  • Vantagens:
    • Uma vez que o sistema é programado para aprender, a quantidade de erros que ele pode eventualmente cometer diminui substancialmente;
    • Por se tratar de máquinas e elas não precisarem de intervalos frequentes, o trabalho pode ser realizado sem pausas.

  • Desvantagens:
    • Alto custo para produzir e recuperar tantos as máquinas quanto os softwares e códigos;
    • Padronização: uma vez que não há maneiras possíveis de implantar a criatividade numa IA;
    • E por otimizar e viabilizar o trabalho quase à excelência, as máquinas detentoras de Inteligência Artificial quase sempre substituem a mão de obra humana, causando e elevando o índice de desemprego.

IDE

  • Conceito
    • Os IDEs (Integrated Development Environment) são ambientes de programação geralmente compostos por editor de texto, compilador, debugger e GUI Builder (Graphical User Interface Builder), podendo ou não possuir suporte à uma ou mais linguagens de programação. O principal objetivo desses ambientes é o de promover maior produtividade para quem o utiliza, pois possui mecanismos, já integrados e/ou aplicativos compatíveis, que podem ser instalados separadamente ou já estarem incorporados à um determinado ambiente, afim de facilitar o entendimento, a escrita, a correção de problemas e a visualização e edição do resultado final dos códigos nele programados.

  • Funcionamento
    • A utilização dos IDEs se da por meio de ambientes gráficos em que é possível digitar códigos, em um editor de texto, com o auxilio de mecanismos que facilitam a sua escrita e melhoram seu funcionamento. A maior parte dos IDEs possuem funcionalidades que permitem a melhor identificação de funções e de problemas, por meio de mecanismos visuais, como, diferenciação de funções criadas pelos usuários e funções já existentes em uma determinada linguagem, em alguns ambientes também é possível a pré-visualização e edição do resultado final de um código, por meio de um GUI Builder, os chamados WYSIWYG (What You See Is What You Get). A lista de funcionalidades de uma IDE pode variar de uma para outra, além da possibilidade de implementação de novas.

  • Principais Funcionalidades
    • De maneira geral as principais funcionalidades da maioria IDEs são:


      • Editor de Texto:


      • GUI Builder:


      • Debugger:
Erro ao criar miniatura: Arquivo não encontrado


      • Compilador.
  • Alguns Exemplos
      • Microsoft Visual Studio:


      • Xcode:
Erro ao criar miniatura: Arquivo não encontrado


      • Bluefish:
Erro ao criar miniatura: Arquivo não encontrado


Integração Contínua

  • Conceito
    • A integração contínua é uma prática de desenvolvimento de software de DevOps em que os desenvolvedores, com frequência, juntam suas alterações de código em um repositório central. Depois disso, criações e testes são executados. Geralmente, a integração contínua se refere ao estágio de criação ou integração do processo de lançamento de software, além de originar um componente de automação (ex.: uma CI ou serviço de criação) e um componente cultural (ex.: aprender a integrar com frequência). Os principais objetivos da integração contínua são encontrar e investigar bugs mais rapidamente, melhorar a qualidade do software e reduzir o tempo que leva para validar e lançar novas atualizações de software.

Por que a integração contínua é necessária?

No passado, os desenvolvedores de uma equipe podiam trabalhar isoladamente por um longo período e só juntar suas alterações à ramificação mestre quando concluíssem seu trabalho. Dessa forma, a junção das alterações de códigos era difícil e demorada, além de resultar no acúmulo de erros sem correção por longos períodos. Estes fatores dificultavam uma distribuição de atualizações rápida para os clientes.

Como funciona a integração contínua?

Com a integração continuada, os desenvolvedores frequentemente confirmam um repositório compartilhado usando um sistema de controle de versão, como o Git. Antes de cada confirmação, os desenvolvedores podem escolher executar testes de unidade locais em seus códigos como uma camada de verificação extra anterior à integração. Um serviço de integração contínua cria e executa automaticamente testes de unidade nas novas alterações de código para destacar imediatamente todos os erros.

A integração contínua é referente aos estágios de criação e teste de unidade do processo de lançamento de software. Cada revisão confirmada aciona criação e teste automatizados.

Com a distribuição contínua, as alterações de código são criadas, testadas e preparadas automaticamente para que a produção seja liberada. A distribuição contínua expande com base na integração contínua ao implantar todas as alterações de código em um ambiente de teste e/ou ambiente de produção, após o estágio de criação.


Melhore a produtividade do desenvolvedor

A integração contínua ajuda sua equipe a ser mais produtiva ao liberar os desenvolvedores de tarefas manuais e encorajar comportamentos que ajudam a reduzir o número de erros e bugs implantados para os clientes.


Encontre e investigue bugs mais rapidamente

Com testes mais frequentes, sua equipe pode descobrir e investigar bugs mais cedo, antes que no futuro os problemas cresçam demais.


  • Distribua atualizações mais rapidamente

A integração contínua ajuda a sua equipe a distribuir atualizações para os clientes mais rapidamente e com maior frequência.

Inteligência Cognitiva


  • Conceito
    • Inteligência cognitiva é o termo dado ao fenômeno de manipulação de informações pelo ser humano, sejam ideias ou valores, proporcionando assim o discernimento entre os dados sólidos ou abstratos na mente humana. É reconhecido como havendo duas formas de inteligência cognitiva, a criativa e também a reprodutiva.
  • Criativa:
A criativa parte do pré suposto que o individuo não possui a experiencia sobre um determinado acontecimento, e por tanto qualquer ato ou ideia é gerada no mesmo momento.
  • Reprodutiva:
Já a reprodutiva parte de um conhecimento empírico, ou seja, é um conhecimento que já se possui uma experiência, assim reproduzindo qualquer outra ação já reproduzida ou conhecida.
    • A Inteligência cognitiva aplicada à tecnologia.

Inevitavelmente tocamos no tópico de inteligência artificial, o termo da inteligência artificial aplicada à IA, significa que ela aprende com base em dados aplicados a modelos estatísticos, modelos mais sofisticados podem lidar com banco de dados e informações cada vez maiores e sofisticados.

    • Aplicações
  • Automações: as automações podem ser feitas desde um ambiente que aprende padrões de usuários, usando tracking ou sensores, ou mesmo para automatizar linhas de produção, já que a grande maioria usa padrões, o que máquinas podem facilmente entender e aprender. Podemos citar também, os carros que estão sendo ensinados e programados usando padrões e dados.
  • Diagnósticos: hoje em dia, a inteligência cognitiva, visa através de reconhecimento de padrões, aumentar a precisão com que médicos reconhecem diagnósticos que talvez, teriam que ser sorteados e assim diminuindo a precisão.

Internet


  • Conceito:
    • Seu nome tem origem inglesa, em que o termo "inter" significa internacional e "net" significa rede, ou seja, "rede internacional" que, com computadores espalhados por diversas regiões do globo, consegue obter troca de informações e fazer comunicação utilizando-se de um protocolo comum.


  • Metodologia:
    • Mormente, foi-se utilizado conexões por cabo, quando a rede ainda era fechada, utilizada apenas pelas universidades da época. Posteriormente, a conexão passou a ser discada, onde se utilizava as linhas telefônicas, nesse período a internet já era uma rede internacional aberta. Nesse âmbito, a conexão evoluiu para o tipo banda larga, a qual se encontra os tipos de conexão por via rádio, via cabo e via fibra óptica. Há também a internet móvel, de conexão sem fio, dos tipos E, G, H, H+, 3G e 4G, acessíveis aos aparelhos móveis.


  • Como funciona?
    • História da internet:
    • Antes mesmo que os computadores começassem a ser desenvolvidos, os cientistas pensavam em uma forma de comunicação e troca de informações a distância.
    • Em 1950, período inserido no contexto da Guerra Fria, ocorria a chamada corrida tecnológica e científica, a qual impulsionou o presidente dos E.U.A Eisenhower a investir na criação da ARPA (Agência de Projetos Avançados de Pesquisa) em 1958, que posteriormente ganhou um "D" de defesa e virou DARPA, para que assim o objetivo de avançar um passo a frente da União Soviética fosse realmente desempenhado. Nesse ínterim, houve o marco no qual se veio à tona, pela primeira vez, a idéia de internet, tais ideais se remetem a J.C.R Licklider do MIT (Instituto de Tecnologia de Massachusetts), o qual foi convocado pela DARPA por teorizar sobre uma rede galactica de computadores na qual se poderia acessar qualquer dado.
    • Outro fator que impulsionou o desenvolvimento da internet foi a implementação de nós, que seriam pontos de intersecção de informações, ou check points, os quais averiguariam se a informação não se perdeu durante o trajeto.
    • Desse modo, em 1966 houve o desenvolvimento do precursor do roteador, as IMPS (Interfaces de processamento de mensagens). Não obstante, no mesmo ano criou-se a ARPANET, ou simplesmente rede da ARPA, a qual realizou a primeira conexão em rede da história, no dia 29/10/1969, entre a UCLA (Universidade da Califórnia) e Stanford Research Institute à 650 km de distância, a primeira mensagem a ser trocada seria a palavra "LOGIN", todavia, houve também, nesse mesmo dia, a primeira queda de conexão em rede da história, e a primeira palavra então a ser trocada foi simplesmente "LO". Nesse viés, apesar de o objetivo inicial ser de cunho militar, o impulso para o desenvolvimento de toda essa tecnologia foi a educação.
    • Ademais, em 1971 houve a criação do NCP (Network Control Protocol), já com o objetivo de criar um protocolo comum aos usuários, para que assim fosse possível uma interação mais complexa.
    • Em 1972 deu-se a primeira demonstração pública da ARPANET, realizada por Robert Kahn na Internacional Conference on Computer Communication, em Washington. No mesmo ano, o programador Ray Tomlinson, utilizando-se da ARPANET, sistematizou o que se conhece atualmente por email.
    • Em 1974, a palavra internet é utilizada pela primeira vez, pelo cientista Vint Cerf, conhecido como o "Pai da Internet", e que juntamente a Robert Kahn descreveu, em 1983, o TCP/IP (Transmission Control Protocol / Internet Protocol), utilizado até hoje, porém na forma de IPV6, já que o IPV4 mesmo com a capacidade de abranger 2^32 dispositivos alcançou sua capacidade máxima, permitindo agora com o IPV6 um número de 2^128 combinações de endereços diferentes.
    • Já em 1984, a rede é separada em 2: a MILNET que seria então utilizada para comunicação e troca de arquivos militares, e a ARPANET que obtinha ainda utilização civil e científica.
    • Sob tal óptica, no final dos anos 80 e início dos anos 90 a internet começa a ser utilizada não somente pelas universidades, mas também pelo mundo corporativo, e por fim, pelo público consumidor. Em analogia, em 1990 a ARPANET é desligada e a internet se torna aberta ao público, no mesmo ano se deu a navegação com padrão WWW (World Wide Web), por Tim Berners-Lee, e também a legitimação da URL (endereço único), do HTTP (protocolo de transferência de hipertexto) e do HTML (forma escolhida para expor os conteúdos).


  • Gráfico do crescimento de usuários de internet:


IoT


Conceito

  • IoT (Internet of Things) ou em português Internet das Coisas é um termo que se refere a revolução tecnológica e tem como intuito conectar dispositivos e objetos a Internet usando uma rede mundial de computadores e a um grande banco de dados. A ideia começou a ser discutida em 1991, mas foi em 1999 que o nome “Internet of things” surgiu por Kevin Ashton quando ele mesmo escreveu um artigo chamado “As coisas da internet das coisas”.

Objetivo

  • O objetivo é que vários objetos compartilhem dados e informações entre si e em tempo real com o intuito de facilitar o cotidiano das pessoas, como por exemplo, pensem, que bacana seria se você estivesse no transito, com pressa e o seu próprio carro através do compartilhamento de informações com outros carros a frente te informasse que existe um congestionamento logo a seguir, quanto tempo você demoraria para chegar ao seu destino atual e quais são as outras rotas com um tempo menor, isso é um exemplo de IoT.

Como funciona?

  • Todos os objetos devem estar conectados a uma rede e compartilhando/recebendo informações e dados ao mesmo tempo, isso acontece com o uso de Hardwares, redes de comunicação, aplicação da Inteligência Artificial (IA) e os dispositivos.
  • Hardware: os dados capturados dos dispositivos são enviados para um dispositivo, também chamado de Sistema de controle para serem processados, assim são controlados e podem fazer novas conexões.
  • Redes de comunicação: a famosa internet, o meio de comunicação que já estamos acostumados e é responsável pelas conexões Wifi, Ethernet, dados móveis.
  • Inteligência artificial: não existe IoT sem a IA, pois a IoT necessita que vários objetos estejam conectados e compartilhando informações entre si e precisam ser filtrados e é aí que a Inteligência Artificial tem um papel fundamental que é realizar uma análise e obter resultados automaticamente, evitando, assim, que uma só pessoa tenha que analisar dado a dado de forma manual.

Exemplos de objetos que utilizam IoT:

  • Geladeiras inteligentes: geladeiras com monitores na porta que tem como objetivo ajudar os usuários, como por exemplo, escolher os produtos antes de abrir a geladeira, dar dicas do que fazer para o jantar e exibir desenhos a crianças ou fotos de família.
  • Carros inteligentes: carros com a capacidade de serem pilotados sem a ajuda de humanos, se auto dirigem ou podem auxiliar o humano com o assistente de pista, estacionamento automático e etc.
  • Google watch: Tem vários objetivos, como exemplo, dar suporte a pagamentos pelo Android Pay, melhorias em funções relacionadas ao monitoramento de exercícios e até um teclado virtual .

Exemplo de Software IoT:

  • Nesse artigo é possível verificar o código fonte do que se pode fazer com IoT: um dispositivo que informe a temperatura atual do ambiente que está sendo monitorado. Depois, será possível criar um software cliente para mostrar esses dados. Link: https://imasters.com.br/desenvolvimento/programacao-para-iot
  • Já esse link em inglês demonstra como enviar comandos para uma caixa Wifi AppLamp sobre UDP, controlar as lâmpadas Mi-Light Wi-Fi RGBW / RGB e Dual White e os controladores LED com JavaScript, na aplicação é usada essa linguagem e Node.js. Link: http://www.wifiledlamp.com/service/applamp-api/
  • Se quiserem verificar mais exemplos de códigos de IoT, cliquem no link a seguir: [1]

Referencias:

IP

                                             
  • Conceito
    • Conhecido como "Internet Protoco",IP é uma identificação única para cada compuador conectado a uma rede.Podemos imaginá-lo como um documento de identificação único, como o CPf,por exemplo.
  • Metodologia
    • Cada protocolo de internet “IP” possui um endereço na internet com o comprimento de 32 bits possibilitando cerca de 4 bilhões de combinações de endereçamento possíveis. Estes endereços são descritos em notação decimal onde cada byte é separado por um ponto. Quando um grupo de computadores ligados a uma mesma interface de um computado possui uma mesma faixa de IP exemplo 255.2.1.1, 255.2.1.3, 255.2.1.47 a chamamos de sub-rede, o endereçamento IP designa um endereço a essa sub-rede: 255.2.1.0/24,onde o /24 conhecido como mascara de rede, indica que os 24 bits mais a esquerda dos 32 bits definem o endereço da sub-rede.
  • Como Funciona
    • Ao ligar o computador e conectá-lo a uma rede local, o aparelho recebe um endereço IP que é comumente chamado de IP interno. Mas, a partir do momento em que o usuário começa a navegar, ele passa a usar um segundo número, conhecido como IP externo (que pode estar no computador ou no equipamento que dá acesso à internet).Vale lembrar que boa parte dos endereços IP de conexões fornecidas por operadoras como ADSL (Velox, Speed e etc), mudam a cada vez que o usuário entra na rede.
  • Classes de IP
    • Foram definidas cinco diferentes classes de endereços IP (Classes: A, B, C, D e E).As principais são a classe A, classe B e classe C.
    • A classe A possui um conjunto de endereços que vão desde o 1.0.0.0 até 127.0.0.0, onde o primeiro octeto (primeiros 8 bits N.H.H.H) de um endereço IP identifica a rede e os restantes 3 octetos ( 24 bits) irão identificar um determinado host nessa rede.
  • Exemplo de um endereço Classe A – 120.2.1.0
    • A classe B possui um conjunto de endereços que vão desde o 128.0.0.0 até 191.255.0.0, onde os dois primeiros octetos (16 bits N.N.H.H) de um endereço IP identificam a rede e os restantes 2 octetos ( 16 bits) irão identificar um determinado host nessa rede.
  • Exemplo de um endereço Classe B – 152.13.4.0.
    • A classe C possui um conjunto de endereços que vão desde o 192.0.0.0 até 223.255.255.0, onde os três primeiros octetos (24 bits N.N.N.H) de um endereço IP identificam a rede e o restante octeto ( 8 bits) irão identificar um determinado host nessa rede.
  • Exemplo de um endereço Classe C – 192.168.10.0
  • De forma a resumir a informação relativamente às classes de redes IP
                                     
  • Em resumo:Classe A permitem menos redes mas mais hosts por rede, enquanto por exemplo endereços classe C permitem mais redes mas menos endereços disponíveis por cada rede

IPSec

  • O que é:

O IPsec, também conhecido como o protocolo Internet Security ou IP Security, define a arquitetura dos serviços de segurança para tráfego de rede IP. O IPsec descreve a estrutura para fornecer segurança na camada IP, bem como o conjunto de protocolos projetados para fornecer essa segurança, por meio da autenticação e criptografia de pacotes de rede IP . Também estão incluídos no IPsec protocolos que definem os algoritmos criptográficos usados ​​para criptografar, descriptografar e autenticar pacotes, bem como os protocolos necessários para a troca segura de chaves e o gerenciamento de chaves.

  • Etapas:
    • O IPsec envolve três serviços de segurança:

Authentication Header (AH): autentica o remetente e descobre quaisquer alterações nos dados durante a transmissão.

Encapsulating Security Payload (ESP): Isso não apenas realiza a autenticação do remetente, mas também criptografa os dados que estão sendo enviados.

O IKE (Internet Key Exchange):protocolo definido para permitir que os hosts especifiquem quais serviços devem ser incorporados nos pacotes, algoritmos criptográficos que serão usados ​​para fornecer esses serviços e um mecanismo para compartilhar as chaves usadas com esses algoritmos criptográficos.

  • Como funciona:

A primeira etapa no processo de uso do IPsec ocorre quando um host reconhece que um pacote deve ser transmitido usando o IPsec. Isso pode ser feito verificando o endereço IP da origem ou do destino em relação às configurações de política para determinar se o tráfego deve ser considerado "interessante" para fins de IPsec. O tráfego interessante aciona a política de segurança dos pacotes, o que significa que o sistema que envia o pacote aplica a criptografia e / ou autenticação apropriada ao pacote. Quando um pacote de entrada é considerado "interessante", o host verifica se o pacote de entrada foi criptografado e / ou autenticado corretamente. A segunda etapa do processo IPsec, chamada IKE Phase 1, permite que os dois hosts que usam o IPsec negociem os conjuntos de políticas que usam para o circuito seguro , se autentiquem entre si e iniciem um canal seguro entre os dois hosts.

  • Existem dois modos de IPsec:

Tunnel Mode: Isso levará todo o pacote IP para formar uma comunicação segura entre dois locais ou gateways.

Transport Mode: Isso encapsula somente a carga útil do IP (não o pacote IP inteiro como no tunnel mode) para garantir um canal seguro de comunicação.

Linguagens de Programação

Oque é? Qual a função?


  • O que é uma Linguagem de Programação ?

    • Linguagem de programação é o meio que se utiliza para "conversar" com o computador, de forma que seja possível interagir e programar a máquina para que a mesma realize determinas tarefas com precisão, existem várias linguagens entre tanto, todas tem o mesmo objetivo de possibilitar a interação homem e máquina de maneira eficiente através de seus códigos, que são utilizados para escrever um Algorítimo, que ao contrário da nossa língua tem restrições ( exemplo: não pode haver ambiguidade ) e como nossa língua há diversas linguagens, e não é possível caracterizar em "melhores e piores", pois como se tratam de um código, cada uma tem uma função específica e como são uma ferramenta devem ser utilizadas de acordo com a necessidade da situação.


  • Qual a função de uma Linguagem de Programação ?

    • Cada Linguagem tem sua finalidade, entretanto é possível realizar quase tudo com uma mesma linguagem, porém não é eficiente, ( exemplo: utilizar assembly, uma programação de baixo nível, para escrever "Hello world", seria o mesmo de usar um garfo para tomar sopa, é possível mas não é eficiente).
    • Algumas linguagens permitem algoritmos mais simples quando direcionados a objetos, como C++, C#, Java, (entre outros), já outras linguagens permitem maior facilidade em programas que envolvam strings exemplo: LUA

C:

  #include <stdio.h>
  int main()
  {
     // printf() displays the string inside quotation
     printf("Hello, World!");
     return 0;
  }

Assembly:

     DATA SEGMENT
          MESSAGE DB "HELLO WORLD!!!$"
     ENDS
     CODE SEGMENT  
         ASSUME DS:DATA CS:CODE
     START:
           MOV AX,DATA
           MOV DS,AX
           LEA DX,MESSAGE       
           MOV AH,9
           INT 21H
           MOV AH,4CH
           INT 21H      
     ENDS
     END START

Machine Learning


  • Conceito:
    • Machine Learning é um subcampo a inteligência artificial, que por sua vez é um subcampo da ciência da computação. Essa área se encarrega de alinhar técnicas de análise de dados e reconhecimento de padrões de modo a gerar previsões. É o estudo das formas de alinhar as tecnologias que temos para que uma máquina possa entender o que lhe está sendo pedido/perguntado e como fazer isso, sem que elas demonstrem explicitamente terem sido programadas. Em resumo, é a forma de fazer uma máquina aprender com suas experiências, assim como os humanos o fazem. O objetivo é fazer com que a máquina consiga melhorar seu próprio desempenho através da medição de efetividade desse desempenho, sem que haja necessariamente intervenção humana.


  • Metodologia
    • O Machine Learning permite que a máquina encontre padrões dentro de uma série de dados ou de uma biblioteca (dados/bibliotecas que devem ser especificados/explicados antes [categorizados] para a máquina) e usando as instruções dadas (definições de funções, dados de entradas, algoritmos complexos, métodos estatísticos específicos) faz determinações ou previsões. Com isso, ao invés de um programador precisar especificar cada ação possível, pra cada cenário possível, para cada informação possível, ele insere instruções para o programa analisar os dados que está recebendo e criar conclusões sobre esses dados. Essas conclusões podem estar certas ou erradas e é por meio da medição da taxa de acertos que o programa evolui. Essa medição pode ser feita por intervenção direta humana ou por assimilação com os dados verdadeiros. Um exemplo bastante rudimentar, onde o Orientador é o programador e o Aluno é a máquina: O orientador quer .
  • Como funciona?
    • Uma definição clássica do funcionamento do Machine Learning é dada pelo Tim Mitchell, grande cientista da computação, onde ele diz: “Um programa de computador é dito para aprender com a experiência E com a relação a alguma classe de tarefas T e medida de desempenho P, se o seu desempenho em tarefas em T, medida pelo P, melhora com a experiência E
    • Um exemplo bastante rudimentar ajuda a explicar: O Orientador quer que o Aluno faça um Trabalho sobre barcos. Ele explica ao aluno que os barcos podem ser de várias cores, tamanhos e formatos. Ele explica também que a pesquisa tem de ser sobre barcos grandes azuis com formato de triângulo. Então, o Orientador dá ao Aluno 5.000 amostras de barcos variados. O Orientador ajuda o Aluno, ensinando a localizar os barcos, retirando primeiro os de outras cores, depois os médios e pequenos e por fim os não triangulares, depois separa apenas os grandes azuis triangulares e entrega ao Orientador. O Orientador avalia e retorna ao aluno quais barcos escolhidos estavam certos e quais estavam errados. Nesse exemplo, o Orientador é o Programador, o Aluno é a Máquina, os Barcos e seus formatos são os Dados, o Trabalho sobre o tema é a Instrução e especificação, a forma como o Orientador ensinou o Aluno a separar os barcos é o Algoritmo, a entrega do Trabalho é sua conclusão/previsão final. Da mesma maneira que foram passados Dados, Instruções e Algoritmos para que o Aluno realizasse um Trabalho que o Orientador pudesse corrigir, o programa em machine learning aprende a realizar tarefas utilizando instruções. Da próxima vez que o Aluno refizer a pesquisa do Orientador, se estiver atento à sua correção, ele encontrará resultados melhores e mais precisos.






Memória RAM


  • Conceito
    • A memória RAM (Random Access Memory - Memória de Acesso Aleatório) é um dispositivo que permite o acesso aos arquivos armazenados no computador.
    • Existem dois tipos de memória RAM: DRAM e SRAM.
    • A DRAM (Dynamic Random Access Memory), é mais lenta pois seu tempo de acesso é maior, porém seu custo de valor e energia é menor.
    • A SRAM é uma memória mais rápida bem como seu tempo de acesso, porém seu custo de valor e energia são maiores que as DRAM.
  • Metodologia
    • Muitos programas, jogos, aplicativos podem ter um baixo desempenho funcional devido a quantidade necessária de memória para poder executar algo com fluidez. Isso acontece quando a quantidade de informações que um programa envia para a memória junto com o HD não é suportada pelo sistema, causando lentidão na máquina.
    • O uso correto dessas memórias irá definir a capacidade e a velocidade do acesso das informações armazenadas no computador. Quanto maior a necessidade de informações, mais importância terá a memória.
  • Como Funciona
    • A memória recebe as informações do HD, armazena-as por um determinado tempo e disponibiliza para o processador.
    • A memória RAM é um componente composto pelos chips e por milhões de transistores e capacitores. O capacitor armazena os elétrons e quando ele está carregado, o sistema lê uma base de códigos binários, sendo que cada leitura em 0 ou 1 significa um bit de informação, assim a memória RAM processa todas as ações executadas pelo usuário.


Mineração de Dados

Conceito

Com a chegada da informática, uma quantidade gigantesca de informações, tem sido coletada e armazenada diariamente, o que gerou um grande avanço nos mais variados setores em nossa sociedade, contudo, apenas recuperar essas informações não é de grande vantagem, justamente pelo grande volume e variedade que elas apresentam. Assim a mineração de dados, uma ferramenta recente, tornou essa recuperação de informações em algo vantajoso, ela consiste em um processo de análise de grandes quantidades de dados com o objetivo de encontrar padrões, correlações, erros, anomalias e assim prever um resultado ou resultados possíveis. Isso é feito utilizando uma variedade de técnicas, e os resultados podem auxiliar por exemplo nas tomadas de decisões de empresas como aumentar rentabilidade, reduzir riscos, melhorar relacionamento com clientes, entre outras.


Como essa ferramenta é utilizada hoje?

A mineração de dados é utilizada em vários setores, principalmente no ramo empresarial. Como por exemplo na identificação de padrões de consumo. Imagine um conjunto de dados de um supermercado, onde a identificação do item “Picanha” é dado pela letra “A”, a “Cerveja” é dado pela letra “B”, e a letra “C”corresponde a “aquisição de cerveja tipo lager”. A obtenção de uma regra do tipo “ABC” implica que pessoas que adquiriram picanha, também compraram cerveja do tipo lager, Dessa regra vários entendimentos podem ser confirmados, como, pessoas que compram picanha também compram cerveja e possuem um poder aquisitivo maior portanto optam por cervejas de melhor qualidade. Assim, uma estratégia pode ser tomada pelo supermercado, como dispor cerveja do tipo lager perto da picanha. Claro que este exemplo é um exemplo didático simples, a mineração de dados pode servir para tomadas de decisões, pesquisas científicas, montagem de estratégias bem mais complexas, separar ruídos caóticos e repetitivos, entender o que é relevante e o que não é, acelerar o ritmo de tomada de decisões, etc.


Exemplo real:

Utilizando o Data Mining (mineração de dados) a Secretaria da Fazenda do Estado do Amazonas, descobriu que 80% dos servidores que tinham um poder aquisitivo elevado eram divorciados ou tinham terminado uma relação, enquanto que essa taxa nos servidores de poder aquisitivo baixo era de apenas 30%. Assim duas conclusões foram retiradas desta análise de dados. Que servidores com mais dinheiro se envolvem mais em relações extra-conjugais, o que geralmente resulta em separação, ou que servidores com poder aquisitivo maior não possuem razão para manter um casamento infeliz.

Fonte: http://www.inf.puc-rio.br/~villas/sig/PUC-SIG-2018.2-01-SistemasDeInformacao.pdf


Como funciona:

A mineração de dados utiliza três técnicas principais como base para análise de dados, a Estatística (estudo numérico da relação entre dados), Inteligência Artificial (inteligência de softwares que se assemelha à humana) e Machine Learning (aprendizado realizado por algoritmos para realizar previsões). As principais etapas dentro da mineração de dados são:

Pergunta.

Tudo começa com uma pergunta, consiste basicamente em algum implemento ou algo que você precisa saber para melhorar algum processo na área em que atua.

Preparar os dados.

Coletar informações hoje não é um problema, o problema aqui é juntar as informações de uma maneira que possa ser explorada pela mineração de dados. Os especialistas em dados ainda passam muito tempo lidando com essa etapa.

Explorar os dados.

Aqui as ferramentas irão atuar nos dados preparados, usuários, membros da organização, entre outros para procurar relações, padrões, entendimentos ou qualquer outro tipo de interação entre as informações.

Modelagem dos dados.

Essa etapa consiste em um refinamento das interações conseguidas na etapa anterior, um afunilamento das relações que vão ajudar a responder a pergunta inicial, e através de experimentos (utilizando algoritmos de machine learning) descobrem o melhor modelo para a resolução do problema.

Implementação dos modelos.

É a parte em que o processo sai da fase de descoberta e começa a ser desenvolvido para resolver o problema em si, utilizando um procedimento automatizado e repetitivo.

Ação.

Aqui as decisões são tomadas baseadas nos resultados do modelo desenvolvido. Podem ser decisões estratégicas, que são feitas por pessoas com base no resultado obtido e decisões operacionais, que são automatizadas (não precisam de interações com humanos).

Avaliação do resultado.

Talvez a etapa mais importante, aqui é feita a avaliação do resultado obtido depois da ação tomada, daqui sai o fracasso ou sucesso do modelo desenvolvido. A pergunta foi respondida? A resposta ajudou a melhorar algum processo da área em que atua?

Nova pergunta.

Como o conjunto de dados está sempre crescendo e a relação entre os dados sempre mudando, o modelo desenvolvido deverá ser atualizado de tempos e tempos, e a automatização reescrita para adaptar as novas interações de dados.



Fonte: Tradução figura 2 Data Mining from A to Z




Ai está uma breve explicação do que é a mineração de dados e de como ela pode ser usada para tomada de decisões e implementações no uso de informações. Ainda há muito o que se falar sobre o assunto, para mais conhecimentos segue um link para estudo.


https://www.sas.com/pt_br/insights/analytics/mineracao-de-dados.html

Modelo Estruturado


Modelo Orientado a Objeto


Todos os sistemas de computação, dos mais complexos aos mais simples programas de computadores, são desenvolvidos para auxiliar na solução de problemas do mundo real. Mas, de fato, o mundo real é extremamente complexo. A proposta de Alan Key, o precursor da Programação Orientada a Objeto (POO), foi gerenciar a complexidade inerente aos problemas do mundo real abstraindo o conhecimento relevante e encapsulando-o dentro de objetos.

Na POO há quatro princípios básicos:

  • Abstração: Quando há concentração nas características essenciais, gerenciando a complexidade, ou abstraindo-a.
  • Encapsulamento: Um mecanismo da linguagem de programação para restringir o acesso a alguns componentes dos objetos, escondendo os dados de uma classe e tornando-os disponíveis somente através de métodos.
  • Modularidade: Decomposição de um problema em pequenos pedaços, para gerenciar complexidade
  • Herança: Possibilidade de reuso de código o que otimiza a produção da aplicação em tempo e linhas de código.


Além dos quatro princípios básicos, é importante sabermos os conceitos de Classe e Objeto.


  • Uma classe é a ideia do que seria um objeto, uma “fábrica” de objetos. As classes sempre devem responder a três perguntas: Que coisas eu tenho (atribuições); que coisas eu faço (método) e como estou agora (estado), ou seja, classes são modelos que definem os métodos e as variáveis a serem incluídas em um tipo particular de objeto.
  • Um objeto é algo que pode ser percebido pelos sentidos e também descritas por meio de suas características (atribuições), comportamentos (método) e estado atual (estado). Todo objeto vem a partir de uma classe.

Quando construímos um objeto a partir de uma classe, chamamos esse fenômeno de instanciar. Veja abaixo o exemplo:

  • Atribuições:
    • a) Cor do bolo
    • b) Tamanho
    • c) Cobertura
    • d) Sabor
  • Métodos:
    • a) Comer
    • b) Cortar
    • c) Rechear
  • Estado: Vai variar de cada objeto. Por exemplo, podemos dizer que o bolo de chocolate (sabor) é de tamanho médio, e azul (cor do bolo) pois está com cobertura de blueberry.


As principais vantagens na utilização da POO são:

  • Confiável: O isolamento entre as partes gera software seguro. Ao alterar uma parte, nenhuma outra é afetada.
  • Oportuno: Ao dividir tudo em partes, várias delas podem ser desenvolvidas em pararelo
  • Manutenível: Atualizar um software é mais fácil. Uma pequena modificação vai beneficiar todas as partes que usarem o objeto
  • Extensível: O software não é estático. Ele deve crescer para permanecer útil
  • Reutilizável: Podemos usar objetos de um sistema que criamos em outro sistema futuro
  • Natural: Mais fácil de entender. Você se preocupa mais na funcionalidade do que nos detalhes de implementação.


REFERÊNCIAS

Modem


  • Oque é Moden: Modem vem da junção das palavras modulador e demodulador. Ele é um dispositivo eletrônico que modula um sinal digital numa onda analógica, pronta a ser transmitida pela linha telefônica, e que demodula o sinal analógico e reconverte-o para o formato digital original. E é utilizado para conexão à Internet, BBS, ou a outro computador.

  • Como Funciona: O processo de conversão de sinais binários para analógicos é chamado de modulação ou conversão digital-analógico. Quando o sinal é recebido, um outro modem reverte o processo chamado demodulação. Ambos os modems devem estar a trabalhar de acordo com os mesmos padrões, que especificam, entre outras coisas, a velocidade de transmissão bps, baud, nível e algoritmo de compressão de dados, protocolo, etc.

Os primeiros modems analógicos eram externos. Ligados através das interfaces paralelas, onde a velocidade de transmissão era de 300 bps e operavam em dois sinais diferentes, um tom alto que representava bit 1, enquanto o tom baixo representava o bit 0.


  • Tipos de Modem: Atualmente possui dois tipos de modem, que seria o para acesso discado e o para banda larga.

Os modems para acesso discado geralmente são instalados internamente no computador (em slots PCI) ou ligados em uma porta serial, enquanto os modems para acesso em banda larga podem ser USB, Wi-Fi ou Ethernet. Os modems ADSL diferem dos modems para acesso discado porque não precisam converter o sinal de digital para analógico e de analógico para digital porque o sinal é sempre digital (ADSL - Asymmetric Digital Subscriber Line). O exemplo mais familiar é um modem de banda de voz que transforma os dados digitais de um computador pessoal em sinais elétricos modulados na frequência de voz do alcance de um canal telefônico. Estes sinais podem ser transmitidos através de linhas telefônicas e demodulados por outro modem no lado do receptor para recuperar os dados digitais.

Normalização (BD)


A normalização é um processo usado para evitar anomalias que possam surgir em seu banco de dados, assim como facilitar sua futura manutenção, maximizar a performance deixando a busca por informações mais rápida e também ajuda a manter a integridade dos dados.

Existem três formas normais mais conhecidas que serão mais detalhadas a baixo. Ao aplicar essas formas, será obtido um maior número de tabelas em seu banco de dados, por esse motivo devem ser utilizadas com bom senso, para que não seja gerado um excesso de tabelas, deixando seu banco de dados lento.

  • Primeira Forma Normal - 1FN: De acordo com a Primeira Forma Normal, cada linha na tabela deve apresentar um registro e cada célula dessa tabela deve conter um único valor e sem repetições. Para deixar a tabela nessa forma, é necessário identificar se possui colunas com dados repetidos e remove-las, e também verificar se possuem células com mais de um valor, neste caso é preciso separa-los.
  • Segunda Forma Normal - 2FN: Para aplicar a Segunda Forma Normal em uma tabela, ela deve estar obrigatoriamente na 1FN e seus atributos não chaves devem depender chave primária (não podendo depender apenas de parte dela). Para deixar a tabela nessa forma, deve-se identificar os atributos que não são funcionalmente dependentes da chave primária da tabela e separa-los em uma outra tabela.
  • Terceira Forma Normal - 3FN: Para aplicar a Terceira Forma Normal em uma tabela, ela deve estar obrigatoriamente na 2FN e os atributos não chaves da tabela devem ser mutuamente independentes e serem dependentes unicamente e exclusivamente da chave primária (um atributo B é funcionalmente dependente de A se, e somente se, para cada valor de A só existe um valor de B). Para deixar a tabela nessa forma, deve-se identificar os atributos que não dependem exclusivamente da chave primária e separa-los em uma outra tabela.



Exemplo:

Tabela antes de ser normalizada:

Cliente Telefone Locações Código Pagamento Saldo
João 12345-6789 Vingadores - Ficção / A Freira - Terror L1 Cartão Débito 15,00
Maria 23456-7891 Os incríveis - Animação / A Freira - Terror L2 Cartão Crédito 20,00
Pedro 34567-8912 O Predador - Ficção L3 Dinheiro 10,00


Tabela após 1FN

Cliente Telefone Locações Categoria Código Pagamento Saldo
João 12345-6789 Vingadores Ficção L1 Cartão Débito 15,00
João 12345-6789 A Freira Terror L1 Cartão Débito 15,00
Maria 23456-7891 Os incríveis Animação L2 Cartão Crédito 20,00
Maria 23456-7891 A Freira Terror L2 Cartão Crédito 20,00
Pedro 34567-8912 O Predador Ficção L3 Dinheiro 10,00

Tabelas após 2FN

Código Pagamento Saldo Cliente Telefone
L1 Cartão Débito 15,00 João 12345-6789
L2 Cartão Crédito 20,00 Maria 23456-7891
L3 Dinheiro 10,00 Pedro 34567-8912
Código Locações Categoria
L1 Vingadores Ficção
L1 A Freira Terror
L2 Os incríveis Animação
L2 A Freira Terror
L3 O Predador Ficção

Tabelas após 3FN

Cliente Telefone Saldo
João 12345-6789 15,00
Maria 23456-7891 20,00
Pedro 34567-8912 10,00
Código Pagamento Cliente Telefone
L1 Cartão Débito João 12345-6789
L2 Cartão Crédito Maria 23456-7891
L3 Dinheiro Pedro 34567-8912
Código Locações Categoria
L1 Vingadores Ficção
L1 A Freira Terror
L2 Os incríveis Animação
L2 A Freira Terror
L3 O Predador Ficção

Open Source

  • Conceito

Open Source ou código aberto em português é um modelo de desenvolvimento livre, permitindo que qualquer pessoa (seja um programador experiente ou iniciante) sem restrição, possa analisar, modificar, consultar e posteriormente poder distribui-lo para que outros possam fazer a mesma coisa, sem ter a necessidade de cobrar uma licença.

  • História

O termo surgiu em uma reunião em 1998 entre pessoas que futuramente se tornaram referência no assunto, entre eles Todd Anderson, Chris Peterson, Jon “Maddog” Hall, Larry Augustin, Sam Ockman e Erick Raymond. Com o cunho desse termo, fica claro que o objetivo dos desenvolvedores é evitar questões éticas, como o direito autoral e fornecer para as empresas um produto comercial, um estudo da Oxford mostrou que 80% das empresas que foram entrevistadas usavam o softwares de código aberto, entre outras grandes empresas de tecnologia do mercado como Microsoft, IBM, HP, Intel e Dell.

  • Como funciona?

O seu funcionamento e manutenção se dão de maneira coletiva, o autor cria um software e o distribui com seu código-fonte, a partir deste momento outras pessoas irão consultar e modificar a criação podendo até melhorá-lo e eliminando os erros do programa. Um caso que pode ser colocado é o do Linux, que antes de ser lançado oficialmente passou por uma versão beta aberto, onde milhares de pessoas puderam adquiri-la, identificar seus erros, sugerir e fazer melhorias antes de seu lançamento oficial.

  • Alguns exemplos de sistemas de código aberto:

Linux: Sistema operacional.

Apache: Servidor web.

Netscape: Navegador web.

Perl: Linguagem de programação.

Sendmail: Programa de transferência de e-mail.



  • Referências:

[2] O movimento código aberto.

[3] The Open Source Era

[4] O que é open source?

[5] Open Source: benefícios que o sistema livre traz ao mercado.



Periféricos


Plataformas

  • Conceito: E um padrão de um processo operacional ou de um computador, a tecnologia fundamental em que assenta em um sistema de computador. A plataforma pode ser vista de duas formas, vista como uma restrição no processo de desenvolvimento de aplicações ou uma assistência no processo de desenvolvimento de aplicações, na medida em que fornece funcionalidades prontas de baixo nível. Existem basicamente dois tipos:

Arquitetura de hardware;

Framework de Software ( sistema operativo, linguagem de programação, interfaces usuário);

Exemplos de plataformas como:

  • Sistema operativo:

-Windows,

-Linux,

-Android

  • Plataforma de Software:

-Java - JDK y JRE

-Adobe AIR

  • Plataforma de Hardware:

-Playstation

-XBOX

(qualquer console de jogo)


Processadores


Conceito:

Um processador, também chamado de CPU, central processing unit (unidade central de processamento), é uma espécie de microchip especializado. Ele é o considerado o cérebro do computador, motor do computador. A sua função é acelerar, endereçar, resolver ou preparar dados, dependendo da aplicação.

Como funciona?

O processador transmite estas informações para a placa mãe, que por sua vez as transmite para onde for necessário (como o monitor, impressora, outros dispositivos).

Ele é composto por 3 componentes principais

-Registrador: Contida na CPU, o registrador é um tipo memória com pequena capacidade, porém muito rápida. É utilizada no armazenamento temporário durante o processamento. Os registradores estão no topo da hierarquia de memória e são considerados o meio mais rápido e caro de ser armazenar um dado.

-ULA /UAL (Unidade Lógica e Aritmética): é responsável pelas operações elementares (soma, subtração, multiplicação e divisão), e pelas decisões lógicas, ou seja, pelas comparações entre informações.

-UC (Unidade de Controle): controla o funcionamento da ULA e da memória. É responsável também por distribuir e organizar tarefas, transferir informações da entrada para a memória e da memória para a saída.

Algumas características do processador em geral:

-Frequência de Processador (Velocidade, clock): Medido em hertz, define a capacidade do processador em processar informações ao mesmo tempo.

-Cores: O core é o núcleo do processador. Existem processadores core e multicore, ou seja, processadores com um núcleo e com vários núcleos na mesma peça. Estes dois ou mais núcleos são responsáveis por dividir as tarefas entre si, ou seja, permitem trabalhar em um ambiente multitarefa.

-Cache: A memória Cache é um tipo de memória auxiliar, que faz diminuir o tempo de transmissão de informações entre o processador e outros componentes(armazenadas no processador, esses dados estão rapidamente acessíveis e não é necessário executar uma varredura em disco ou na RAM para buscar as informações.

-Potência: Medida em Watts é a quantia de energia que é consumida por segundo. 1W = 1 J/s (Joule por segundo) Fontes: https://www.techtudo.com.br/artigos/noticia/2012/02/o-que-e-processador.html

https://www.infoescola.com/informatica/processador/

https://www.cursosdeinformaticabasica.com.br/o-que-e-processador-cpu/

https://queconceito.com.br/processador-informatica

Protocolos


PWA


  • Conceito
    • Pwa é uma aplicação híbrida entre web e mobile o termo usado para denotar aplicativos da web que usam as últimas tecnologias da web. Os aplicativos da web progressivos são páginas web (ou sites) tecnicamente regulares, mas podem aparecer ao usuário como aplicativos tradicionais ou aplicativos móveis. Este novo tipo de aplicativo tenta combinar os recursos oferecidos pela maioria dos navegadores modernos com os benefícios da experiência móvel.
    • Em resumo, é uma aplicação web com tecnologias que permitem termos a experiência de uso muito próxima da oferecida pelos mobile apps.
  • Vantagens
    • Poucas alterações no código do site
    • Utilização de HTML/CSS/Javascript
    • Acesso à API’s nativas como geolocalização, câmera, microfone, etc
    • Envio de notificações push
    • Não ocupa espaço no dispositivo e pode ser instalado de forma instantânea
    • Roda mais rápido e funciona até mesmo sem conexão à internet, de forma offline, diferente de um site responsivo que só funciona online
    • O administrador não precisa se preocupar em enviar novas versões do app nas stores e passar por processos de aprovação, pois o PWA Litefy se atualiza automaticamente
  • Desvantagens
    • Suporte cross-browser (existem muitos navegadores)
    • Sem acesso à vibração, sensores, comunicação com outros apps, etc
    • Não é possível adicioná-los às lojas de aplicativos
    • Interface web pode perder performance em aplicações mais pesadas
    • Pode não passar a legitimidade de uma aplicação mobile
  • Como funciona
    • O PWA funciona como uma espécie de aplicação nativa. Com o app instalado em seu celular, você pode ter a mesma experiência que tinha pelo browser agora sem nenhuma informação em tela além da aplicação, ou seja, toda interface do navegador como barra de endereço, botões, favoritos, etc, são removidos.
    • PWA transforma os sites em experiências muito próximas dos aplicativos mobile através de um arquivo chamado Web App Manifest que fica hospedado junto ao seu site. Esse arquivo define como o site será carregado, a aparência que terá, o botão a ser utilizado na tela inicial do celular do usuário e trata as notificações push.
    • Um aplicativo tradicional requer o seu download nas apps stores, com PWA não precisamos dessas lojas e os sites se tornam instaláveis. Além disso, especificamos o ícone e a página a ser carregada quando o ícone for tocado.
    • Com Progressive Web Apps temos o controle da aparência da interface, determinando a exibição em tela normal ou full screen, usar a orientação retrato ou paisagem e outras possibilidades.
  • Mais detalhes:


RA


  • O que é:
    • O termo RA pode ser lido como abreviação para Realidade Aumentada. Essa por sua vez é uma tecnologia crescente no mercado atual e possui diversos exemplos como diversos aplicativos para smartphones. Vale lembrar que essa tecnologia se expande cada vez mais e hoje é aplicada até em óculos de hologramas. Seu objetivo é, resumidamente gerar uma ambientação mista, sobrepondo o virtual no real, ou seja, proporcionar uma maior versatilidade e imersão ao utilizar tecnologias.
  • Para o que serve:
    • A Realidade Aumentada tem diversas aplicações. Desde jogos até ajuda na decoração de casas. Um exemplo que pode ser citado é o jogo "Pokémon Go", que foi desenvolvido pela Niantic. O jogo utiliza os serviços de DPS e a câmera do celular de modo a gerar uma imagem mista que mistura os pokémon (um tipo de criatura que deve ser capturada) às imagens capturadas pela câmera em tempo real. Outros exemplos são apps que permitem você alterar visualmente os móveis da sua casa. Até algumas industrias automobilísticas utilizam dessa tecnologia.

Raspberry

Conceito:

O Raspberry Pi foi criado em fevereiro de 2012 pela Fundação Raspberry Pi, a qual foi criada para promover e ensinar ciência básica em escolas e faculdades em todo o Reino Unido. Inicialmente eles lançaram duas versões as quais eram o Model A e o Model B e esses computadores variavam em especificações e capacidades.

Os produtos se tornaram populares devido ao seu custo, que variava entre US $ 25 (R$ 104) e US $ 35 (R$ 146), o que até hoje é muito barato para um dispositivo que oferece todas as funcionalidades básicas de um computador. Eles são eficientes e duráveis, o que os tornam fáceis de realizar modificações e criar novos projetos.

No site do Raspberry Pi, eles criaram 2 imagens que poderiam ser facilmente instaladas em um cartão SD que atuaria como o Sistema Operacional do dispositivo, uma das imagens foi baseada no Debian, uma variação de Linux a qual batizada de Raspbian e o outro S.O. foi chamado Raspbmc e foi baseado no popular software de media center Kodi, muito popular no meio dos dispositivos de entretenimento.

Projeto de fliperama utilizando um Raspberry Pi 3 Model B

Aplicações:

As placas Raspberry Pi vem sido muito utilizadas no meio do entretenimento pessoal, na criação de dispositivos multimídia para a reprodução de filmes online e IPTV, também na criação de consoles pra jogos, principalmente de gabinetes de fliperamas retrô. Mas não é somete isso que podemos criar, há infinitas possibilidades do que fazer com estas placas por exemplo drones, câmeras e até sistemas complexos de iluminação residencial!

Os Modelos de Raspberry Pi:

  • Raspberry Pi Model A+

Esta é a placa Raspberry Pi mais simples disponível no mercado e tem memória de apenas 256 MB, que precisam ser compartilhados entre CPU e processador gráfico.Em relação às interfaces de expansão, há porta GPIO de 40 pinos e apenas uma USB 2.0. Há saída de vídeo HDMI e para som tipo P2, além de slot para cartão de memória no formato microSD.

  • Raspberry Pi Model B+

O módulo funciona com um processador de núcleo único de 700 MHz, e conta com 512 MB de memória RAM no antigo padrão DDR2.Para ligar periféricos e hardware diversos, a placa conta com interface GPIO de 40 pinos. Há quatro portas USB 2.0, saída HDMI, slot para cartão de memória do tipo microSD, baixo consumo de energia, Ethernet, interface para câmera e tela, além de saída de som P2.

Raspberry e Arduino:

  • Qual é a diferença entre os dois?
    • Um Arduino é uma placa-mãe de microcontrolador. Um microcontrolador é um computador simples que pode executar um programa de cada vez.
    • Um Raspberry Pi é um computador de uso geral, geralmente com um sistema operacional Linux, e a capacidade de executar vários programas. É mais complexo do que um Arduino.
  • Qual devo utilizar?
    • Uma placa Arduino é melhor usada para tarefas repetitivas simples: abrir e fechar a porta, ler a temperatura externa e reportá-la por notificações.
    • Raspberry Pi é melhor usado quando você precisa de um computador completo: executando várias tarefas, fazendo cálculos intensos (nos casos de mineiração Bitcoin ou criptografia)


Redes de Computadores


Redes de computadores

      Resumidamente redes de computadores é a ligação de dois ou mais computadores em uma rede a qual é possível trocar dados entre si. A rede mais conhecida mundialmente é a internet, a mesma surgiu de uma rede de computadores que funcionava no sistema de radar do exército norte-americano em 1969, e a universidade da Califórnia e outras universidades se conectaram nessa mesma rede em um projeto chamado Advanced Research Projects Agency Network (ARPANET) e com o passar dos anos essa rede foi evoluindo e hoje é usada em todo planeta.

     A internet se tornou a rede de computadores mais famosa por poder compartilhar arquivos através de downloads e uploads, tornando fácil a comunicação com pessoas que estão distantes e conhecer novas através das redes sociais, e por fim a internet possui um acervo de informação imenso o qual é fácil de ser acessado, ou seja pra qualquer problema bastar pesquisar no google.

     Outros tipos de redes muito conhecidos também são:

- Redes locais (LAN): É uma rede que conecta computadores e dispositivos em uma área geográfica limitada, tem como função compartilhar arquivos e o acesso a dispositivos como, por exemplo, uma impressora.

- Rede campus (CAN): É uma LAN que abrange uma área maior.

- Rede metropolitana (MAN): é uma rede que oferece altas taxas de transmissão e geralmente os canais de comunicação pertencem a uma empresa, são usadas para conectar as redes locais dentro de distâncias maiores.

- Rede de longa distância (WAN): É uma rede com cobertura superior à das redes LAN e MAN, por usar hosts, computadores, router/gateways envolvendo diversos países, um exemplo é a internet.

- Rede de armazenamento (SAN): É responsável por armazenar dados da rede e fazer a comunicação entre um servidor e os demais dispositivos.

      Ou seja a distância e o tipo de equipamentos conectados são fatores determinantes para os tipos de redes, em uma empresa o tipo de rede varia de acordo com a necessidade, e as redes são vitais para uma empresa.


Como funciona a maior rede do mundo:

      A internet funciona por meio da tecnologia TCP/IP que é um modo de comunicação em que cada computador possui um IP, que é o seu endereço, e ao serem interligados forma uma rede.
    
     O caminho que a internet passa para chegar na casa das pessoas que contrataram esse serviço é: backbone, provedor de acesso, provedor de serviço e usuário final.
      O backbone interliga todos os pontos da rede, ele compõe o núcleo da rede, a partir disso os provedores de acesso pegam o sinal de internet desse backbone  e distribuem para as empresas provedoras do serviço de internet que fará com que a internet chegue até o cliente.

Redes Neurais


  • Conceito
    • As Redes Neurais Artificiais (RNAs), foram projetadas a partir da década de 40, mas somente na década de 80, com o aprofundamento dos estudos da neurociência, que começou a surgir diversos modelos de RNAs. Os modelos neurais tem como objetivo aproximar o processamento dos computadores ao cérebro de mamíferos, por isso se assemelham muito a sua estrutura. Basicamente uma Rede Neural tem o papel de aprender, isso vem dá vontade do homem em ter uma maquina independente que, não precise de comandos e tenha a capacidade de interagir com o ambiente, esse sendo conhecido ou não.Uma grande RNA pode ter milhares de unidades de processamento, os chamados neurônios artificias, assim como, o cérebro de mamíferos tem milhões de neurônios.
  • Estrutura
    • Começando pelas suas Unidades de processamento que também podem ser chamadas de neurônios artificias, esses neurônios são estruturas lógico-matemática, que tem por objetivo simular o neurônio biológico. Dessa forma temos, as entradas que possuem a mesma função de recebimento de informação que os dendritos no neurônio biológico, as sinapses são simuladas por pesos, e a função de transferência substitui o limiar de disparo de um neurônio biológico. O agrupamento de neurônios artificias formam a Rede Neural Artificial, as entradas podem ser conectadas entre os neurônios artificias resultando em uma serie de saídas, onde cada saída é um neurônio. Essa conexão tem como função tornar a saída de um neurônio a entrada de outro ou ainda orientar o sinal de saída ao mundo real. Basicamente o que compõem uma RNA são conexão entre camadas, quantidade de neurônios, função de transferência e algoritmo de aprendizado.
  • Funcionamento
    • De maneira geral, resume-se à apresentação de sinais à entrada, onde cada sinal é multiplicado por um peso que indica sua influência na saída da unidade, depois e feita a soma ponderada dos sinais que produz um nível de atividade, se esse nível atingir um limite ele produz uma saída.

  • Aprendizado
    • A habilidade de aprender de seu ambiente é a propriedade mais importante das RNAs, porque com isso ela melhora seu desempenho. Isso é feito com um processo de ajuste aplicado a seus pesos, chamado de treinamento. O conhecimento de uma RNA fica armazenado em suas sinapses, ou seja, seus pesos, por isso a fase de aprendizado deve ser rigorosa. Para o treinamento de uma RNA os dados são escolhidos de forma aleatória, para que a rede aprenda e não decore os exemplos, e também para que ela possa deduzir o que falta nos dados. Um fator importante é a forma como a RNA se relaciona com o ambiente, assim, existem os seguintes paradigmas de aprendizado:
  1. Supervisionado: com o agente externo indicando a resposta desejada.
  2. Não Supervisionado: auto-organização dos pesos.
  3. Reforço: quando um crítico externo avalia a resposta dada pela rede.
  • Aplicações
    • Entre as aplicações de RNAs, são principalmente utilizadas em mercado financeiro, reconhecimento de caracteres (OCR), que são usados em scanners, inteligência artificial, análise e processamento de sinais, controle de processos, robótica, classificação de dados, reconhecimento de padrões, avaliação de crédito, análise de aroma e odor, análise de diagnósticos.


Redes Sociais


Renderização


Renderização é o processo de combinação de material digital bruto como imagens, áudio ,vídeo, legendas entre outros em um único arquivo possuindo como objetivo melhorar a experiencia do usuário em geral.

    • O processo de exige muito do hardware em especial do processador o que faz com que o tempo para a finalização do projeto seja exorbitante obrigando ate mesmo os programadores responsáveis por essa parte a “esperar pelos resultados” o que acaba atrasando e consumindo um tempo vital de muitos projetos.
  • Principais tipos de renderização
  • Renderização offline (Pre-renderização)
    • Este tipo de renderização exige um processamento pesado por parte da cpu do computador com auxílio da placa gráfica pois o calculo são realizados por ambos exigindo um sistema de disco veloz no qual a atividade de escrita se torna uma constante vital.
    • A renderização offline não prioriza a entrega do resultado em tempo real pois em diversos casos o tempo de entrega não é um problema pois a complexidade dos cálculos não permite a entrega de um resultado instantâneo.
  • Renderização em tempo real
    • A renderização em tempo real exige um forte poder de processamento pois as informações da mesma são exibidas de forma quase instantânea muitas vezes utilizando a placa gráfica do computador do usuário para armazenar e processar imagens entregando um resultado que muitas vezes parece simular a experiencia de um filme , constantemente usadas em jogos esse processo parece ter sido feito para tal meio por tratar-se de um ambiente não controlado onde o que deve ou não ser renderizado não esta especificado o que esta ligado diretamente a liberdade do usuário dentro do software tornando essencial esse tipo de render.
  • Tipos secundários de renderização'
    • Geralmente os tipos de renderização são classificados como dois a renderização off-line e a renderização em tempo real sendo diferenciadas pela velocidade de processamento do computador no entanto existem outros tipos de renderização muitas vezes esquecidas algumas realizados durante o projeto antes da entrega final sendo “encaixadas” em um dos dois tipos citados acima outras possuem um grande apelo no mercado atual mas acabam sendo menos priorizadas por possuírem um usuário que não observa tão “fixamente” o processo de produção do mesmo.
  • Renderização de vídeo
    • Este tipo de renderização acontece quando diversos tipos de mídia como imagem áudio legenda são convertido em um único arquivo o que pode durar semanas ou ate segundos o que depende essencialmente da quantidade de mídias e qualidades da mesma em principal o poder de processamento da máquina a ser utilizada sendo muitas vezes necessário um processo de pre-renderização para a exibição de um esboço que mais tarde sera aprimorado para o projeto final.
  • Renderização de imagens 3D
    • A renderização 3D muitas vezes é usada de forma profissional para a exibição de modelos tridimensionais básicos através de um simulador a qual o formato do produto é escolhido pelo usuário e então sendo “polido” através do uso de auxílios ou detalhes como textura iluminação ou até modificação o formato do produto final.
    • Alguns softwares apresentam uma forma de renderização de um modelo tridimensional em tempo real diminuindo a qualidade do mesmo para então retirar a necessidade de renderizar o produto a toda hora o que acaba por exigir muito do computador e processador muitas vezes exigindo uma placa gráfica com memoria dedicada.
  • Renderização de áudio
    • O processo de renderização de áudio permite a inserção de diversos efeitos durante a edição como a reverberação, ecoo e distorções sendo muitas vezes em casos menos complexos sendo renderizado em tempo real no entanto em casos mais complexos no qual torna-se impossível renderizar o produto final em tempo real se torna necessário a renderização offline
  • Considerações
    • A utilização de softwares e hardwares para renderização não é algo único assim como na programação diferentes linguagens são necessárias para cada processo individual sendo assim diferentes configurações de equipamentos são necessárias para se obter o máximo de aproveitamento durante o projeto

Roteador




  • Conceito:
    • Os roteadores são os responsáveis pelo “tráfego” na internet, são dispositivos que possibilitam o tráfego de pacote de dados entre redes de computadores.O dispositivo é conectado a duas ou mais linhas de dados de redes diferentes, assim quando um pacote de dados chega em uma das linhas, o roteador faz a leitura da informação de endereço no pacote e determina o seu destino final.Além disso, os roteadores são capazes de definir a melhor rota para os pacotes de dados, evitando assim roteadores sobrecarregados ou que não estejam funcionando. Um roteador pode ser tanto um dispositivo dedicado (no caso dos roteadores de maior porte) quanto um PC com duas ou mais placas de rede rodando um sistema operacional com suporte a esta função.



  • Funcionamento:
    • Os roteadores mais modernos funcionam conectados ao cabo de banda larga e possuem mais quatro saídas de cabos para computadores e uma antena, que é a parte fundamental para fazer funcionar a transmissão do sinal para a conexão sem fio, alcançando assim dispositivos com conexão via wireless, como smartphones, tablets e notebooks.
    • Os roteadores encaminham os pacotes de dados com base nas informações contidas na tabela de roteamento. Eles fazem a manutenção das tabelas executando processos e protocolos de atualização de rotas, especificando os endereços e domínios de roteamento, atribuindo e controlando as métricas de roteamento.




  • Protocolos de Roteamento: Os protocolos de roteamento são os responsáveis pela comunicação entre os roteadores.Existem dois tipos de protocolos:
    • Protocolos baseados na distância: indicam o caminho mais curto e mais rápido para atingir uma rede.
    • Protocolos baseados no estado do link: indicam o caminho menos congestionado, pois testam o caminho para ver se está livre, diferentemente do protocolo baseado na distância.Os roteadores que usam protocolos baseados no estado do link necessitam conhecer todos os roteadores e caminhos existentes para saber qual o melhor caminho para chegar ao destino. Para os roteadores baseados na distância, isso não é necessário.





  • Tipos de Roteadores:Existem dois tipos de roteamento, os estáticos e os dinâmicos.
    • Os estáticos: estão presentes em aparelhos mais baratos que funcionam priorizando a rota mais curta para o envio de pacotes de dados, deixando de levar em conta os possíveis congestionamentos na transmissão que podem ser encontrados nas redes.
    • Os dinâmicos: estão presentes em equipamentos mais caros e sofisticados, e funciona analisando através de algoritmos ou heurísticas fazendo uma avaliação prévia das condições das redes priorizando assim não as rotas mais efetivas (que não necessariamente as mais curtas), mas sim as mais eficientes, trabalhando de forma à evitar rotas que mesmo que mais curtas estejam congestionadas por transmissões de dados em excesso.
    • O administrador pode fazer a configuração estática das rotas para a propagação dos pacotes ou pode configurar o roteador para que este atualize sua tabela de rotas através de processos dinâmicos e automáticos. O problema de configurar rotas estáticas é que, toda vez que houver alteração na rede que possa vir a afetar essa rota, o administrador deve refazer a configuração manualmente. Já a obtenção de rotas dinamicamente é diferente. Depois que o administrador fizer a configuração através de comandos para iniciar o roteamento dinâmico, o conhecimento das rotas será automaticamente atualizado sempre que novas informações forem recebidas através da rede de roteadores vizinhos.




Satélite


  • Conceito

Satélites são corpos menores que orbitam/giram em torno de maiores em uma trajetória circular ou elíptica, no campo da física esse fenômeno ocorre devido a diferença da gravidade entre tais corpos. Existem dois tipos de satélites, os naturais (também conhecidos como luas, não dependem da influência humana para a sua existência) e os artificiais (equipamentos criados pelo homem com o intuito de observar o universo e/ou oferecer serviços à terra).

  • Funcionalidade
    • Servem para facilitar e melhorar a comunicação em geral;
    • Oferece a transmissão de serviços como TV digital, Internet, Telefone, GPS, etc.

Satélites se comunicam através de ondas de rádio e possuem códigos de acesso criptografado para evitar cruzamento de sinal e acesso ilegal. Basicamente em uma comunicação via satélite, a empresa prestadora de serviço transmite o sinal através de uma antena parabólica (uplink), o satélite amplifica o sinal e retransmite para a antena receptora (downlink).

  • Satélites Geoestacionários
    • São satélites projetados para ficar "estacionado" em um determinado ponto da terra, na altitude de aproximadamente 35.800 km o tempo gasto por este satélite para dar a volta completa no eixo da terra será de 24 horas, ou seja, ele acompanhará a rotação da terra e seu sinal cobrirá sempre um mesmo lugar. Para isto ocorrer de forma correta, o satélite deve ser lançado no plano do equador (região próxima a linha do equador), pois como os satélites tendem a girar em torno do centro da terra, fora deste plano o satélite teria sua orbita comprometida e não "estacionada".
    • O Brasil possui um satélite Geoestacionário denominado de SGDC-1 (Satélite Geoestacionário de Defesa e Comunicações Estratégicas), cuja finalidade é oferecer sinal de banda larga a regiões de difícil acesso e também oferecer um canal seguro de comunicação às forças armadas.



Scrum


  • Conceito
    • O Scrum, desenvolvida por Jeff Sutherland, é definitivamente considerado um framework para organizar e gerenciar tarefas complexas. Com isso, pode ser referido também como uma metodologia ágil para gestão e planejamento de projetos de softwares. Logo, o framework Scrum é um conjunto de princípios e práticas estabelecidas de acordo com cada projeto ou empresa que além de ajudar no planejamento, foca no acompanhamento constante do projeto.


  • Funcionalidade
    • Os projetos de metodologias ágeis de desenvolvimento de software são iterativas, logo divididas em iterações, que serão chamadas de Sprints (nome dado para os ciclos de cada projeto) no caso do Scrum.
    • Para que o Scrum funcione corretamente, existe os papéis fundamentais no gerenciamento que são basicamente três: Product Owner (responsável pela liderança e decidir quando e como agir), ScrumMaster (é retratado como uma espécie de coach, demonstrando o que fazer) e Time de Desenvolvimento (equipe responsável pela concepção, construção e testes do produto final do projeto).

  • Artefatos principais do Scrum
    • Backlog -> É uma lista de itens priorizados a serem desenvolvidos para um software.
    • Product Backlog -> É a lista mantida pelo Product Owner, contendo todas as funcionalidades desejadas para um produto.
    • Sprint Backlog -> É a lista que contém as tarefas que deverão ser executadas.
    • Além desses artefatos principais, o Daily Scrum é relativamente essencial, em que se consiste em uma reunião diária com o objetivo de disseminar conhecimento sobre o que foi realizado no dia anterior e promover novas transformações ou mudanças.
                    


Sistema embarcado

  • Sistema embarcado (ou sistema embutido)

Definição É um sistema microprocessado no qual o computador é completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Diferentemente de computadores de propósito geral, como o computador pessoal, um sistema embarcado realiza um conjunto de tarefas predefinidas, geralmente com requisitos específicos. Já que o sistema é dedicado a tarefas específicas, através de engenharia pode-se otimizar o projeto reduzindo tamanho, recursos computacionais e custo do produto. Em geral tais sistemas não podem ter sua funcionalidade alterada durante o uso. Caso queira-se modificar o propósito é necessário reprogramar todo o sistema. Um sistema embarcado seja um computador construído para o único propósito da sua aplicação, ao invés de prover um sistema computacional generalizado. Essa definição independe da sua construção, pode abranger desde lógicas combinacionais e processadores de 8-bits, até processadores de 64-bits multi-cores e ASICs. Historicamente, no Brasil, o termo sistema embarcado passou a ser adotado a partir de 2007, quando no Wikipédia uma página foi criada definindo-o. Antes, esse tipo de sistema era chamado de eletrônicos de forma geral, termo no qual não consegue representar satisfatoriamente a complexidade de desenvolvimento e os poderes computacionais que diferenciavam os sistemas embarcados dos eletrônicos sem habilidade computacional, e, portanto fora substituído pela tradução direta do inglês embedded system movido pelo interesse dos próprios engenheiros da área.

Sistemas embarcados estão cada vez mais baratos e acessíveis, demandam menor consumo de energia e, além de mais compactos, possuem maior poder de processamento. Com esse crescente poder de processamento, que é cada vez maior com o passar do tempo, o mundo em que vivemos será cada vez mais micro conectado, onde não só os computadores acessam a internet, mas também os objetos ao nosso redor e, até que em um futuro não tão longilíneo, viveremos em um mundo onde a linha que divide o real do virtual será tênue, se não imperceptível. Esse avanço, assim como os que já se passaram, também será graças aos sistemas embarcados.
 Sistemas como PDAs são geralmente considerados sistemas embarcados pela natureza do material informático (hardware) que os compõe, apesar de serem muito mais flexíveis em termos lógicos (software). Fisicamente, os sistemas embarcados passam desde leitores MP3 a semáforos.

Características Sistemas embarcados são desenvolvidos para uma tarefa específica. Por questões como segurança e usabilidade, alguns inclusive possuem restrições para computação em tempo real. O software escrito para sistemas embarcados é muitas vezes chamado firmware, e armazenado em uma memória ROM ou memória flash ao invés de um disco rígido. Por vezes o sistema também é executado com recursos computacionais limitados: sem teclado, sem tela e com pouca memória. Interfaces do utilizador Sistemas embarcados podem possuir desde nenhuma interface do utilizador (dedicados somente a uma tarefa) a uma interface de utilizador completa, similar à dos sistemas operacionais desktop (em sistemas como PDAs). Sistemas mais simples utilizam botões, LEDs ou telas bastante limitadas, geralmente mostrando somente números ou uma fila pequena de caracteres. Sistemas mais complexos utilizam uma tela gráfica completa, usando tecnologias como tela tátil ou aquela em que o significado dos botões depende do contexto da tela. Processamento Em geral os sistemas embarcados possuem uma capacidade de processamento reduzida em comparação com computadores desktops. Ao invés de utilizar microprocessadores, os desenvolvedores preferem utilizar microcontroladores, pois estes já possuem diversos periféricos integrados no mesmo chip. Periféricos Os sistemas embarcados comunicam-se com o meio externo através de periféricos. Estes periféricos podem ser combinados com o processador (como no caso dos sistemas microcontrolados) ou associados no sistema. Entre os periféricos mais comum temos: Entrada de dados através de teclas (geralmente através de teclados feitos com varredura matricial), Leds, display's de LCD (sendo os mais comuns os alfanuméricos por exemplo o HD44780), interface serial, USB, TCP/IP. Alguns exemplos de onde são usados sistemas embarcados Aviônicos, como sistemas de controle inercial, controle de vôo e outros sistemas integrados nas aeronaves, como sistemas de orientação de mísseis Telefones celulares e centrais telefônicas Equipamentos de redes de computadores, como roteadores, hubs, switches e firewalls Impressoras Dispositivos de armazenamento (discos rígidos e disquetes) Controladores da tracção, do motor e do antibloqueio em automóveis: freios ABS e controle de tração Calculadoras Eletrodomésticos, como fornos microondas, máquinas de lavar, aparelhos de TV, DVD players Equipamentos médicos Videogames PDAs Tratores e implementos agrícolas Urna eletrônica

  • O primeiro sistema embarcado que se tem conhecimento é o AGC (Apollo Guidance Computer). Era um computador que operava a 1,024 MHz e era responsável pelo total controle das espaçonaves Apollo, que levaram diversas vezes o homem a Lua nos anos 60 e 70. O AGC, no entanto, não possuía processador, era todo feito com portas NOR.


SO

  • Conceito
    • Um Sistema Operacional é um software responsável pelo controle de um computador, alocando tarefas e gerenciando o hardware, além de fornecer uma interface simplificada para o gerenciamento de um computador a um usuário.
  • Como funciona?
    • Um SO e separado em três grandes camadas: Kernel, Interface gráfica, aplicações.
        • Kernel: É o núcleo do sistema, base do sistema, é nele que se encontra os drivers de um dispositivo e é nele aonde se tem o controle de memória , controle de acesso a disco, controle de placa de rede, etc.Kernel é parte operacional que interage com a parte física de um computador. Cada SO tem um kernel próprio , o windows tem o seu ,mac , e o linux aonde se deriva vários SO(s) por exemplo o android.
        • Interface gráfica:É a forma de interação do usuário de computador a um programa através de representações gráficas, como por exemplo a barra de tarefas do windows.
        • Aplicações:é um programa de computador que tem por objetivo ajudar o seu usuário a desempenhar uma tarefa específica, por exemplo pacote officie, google chrome, Photoshop, etc


Sockets










Sockets de comunicação ou simplesmente sockets são mecanismos criados para comunicação entre máquinas, usados normalmente para implementar um modelo cliente/servidor , que permite a troca de informações entre os processos de uma maquina/aplicação servidor e de uma maquina/aplicação usuario. Originalmente a implementação dos sockets foi feita no 4.2BSD(Berkeley Software Distribution) em 1983 e com algumas modificações essa implementação foi portada para Linux, em geral existem dois tipos de sockets : TCP e UDP. OS dois são controlados por uma API de sockets de maneira que abstraem detalhes da rede para o desenvolvedor. Os sockets do tipo TCP são orientados a conexão e tem um canal exclusivo de comunicação entre cliente e servidor. Eles garantem a ordem do pacote além de serem confiaveis e sem perda. No entanto quando se trata de se recuperar de falhas e perda de pacotes ele é mais lento. Já os sockets do tipo UDP desconsidera a ordem do pacote, recuperação de falhas e garantia de ordem. Por ser menos burocraticos e simples, ele é mais rapido que o TCP para alguns tipos de aplicações. TCP são indicados para aplicações que não podem de maneira alguma ter dados e valores corrompidos durante sua transmissão via rede por exemplo aplicações bancárias. O cliente deve saber previamente qual o nome ou IP do servidor e o respectivo porto onde o servidor foi colocado à espera de ligações, então o cliente solicita uma ligação ao host/porto. Segue a figura abaixo :





se nenhum problema ocorrer o servidor gera um socket num porto vago do lado do servidor, criando assim um canal de combinação entre o cliente e o servidor possibilitando outros pedidos de ligação no porto original. A figura a seguir mostra esse mesmo canal de comunicação :





Tipitamente o comportamento do servidor é ficar em loop, aguardando novas ligações e gerando sockets para atender as solicitações de clientes.



UDP são indicados por exemplo para um jogo, que envia apenas posições atuais de seus jogadores, ou seja, a posição atual é o que importa e todo o resto pode se perder.


CURIOSIDADES :

API : API é um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma baseado na Web. A sigla API refere-se ao termo em inglês "Application Programming Interface" que significa em tradução para o português "Interface de Programação de Aplicativos".

Fonte : https://canaltech.com.br/software/o-que-e-api/

API de Sockets : é uma interface de programação de aplicativos normalmente fornecida pelo sistema operacional que permite que os programas de aplicação controlem e usem soquetes de rede. APIs de soquete de internet geralmente são baseados no padrão Berkeley Sockets.

Endereço de sockets : combinação de um numero de porta e um endereço de IP. Soquetes entregam pacotes de dados de entrada para o processo ou thread de aplicações apropriado com base nesse endereço.

 Referencias : https://pplware.sapo.pt/tutoriais/networking/redes-sabe-o-que-sao-sockets-de-comunicacao-parte-i/

https://blog.pantuza.com/artigos/o-que-sao-e-como-funcionam-os-sockets https://pt.wikipedia.org/wiki/Soquete_de_rede



Speech Recognition


  • Conceito:
    • Também conhecida como automatic speech recognition (ASR), computer speech recognition ou speech to text (STT) o speech recognition é a habilidade de uma maquina ou programa reconhecer e identificar palavras e frases faladas em algum idioma e converter em um formato que a maquina consegue entender. Podem necessitar de treinamento , ou seja, é necessário que o usuário fale algumas frases e palavras especificas para que o programa analise e passe a reconhecer a voz, ou podem não precisar de treinamento algum, reconhece a voz de qualquer pessoa.
  • Usos do Speech Recognition
    • O Speech Recognition é usado em carros para dar comandos de voz para iniciar chamadas de celular , selecionar musicas em aparelhos compatíveis e controlar o radio. Smartfones usam esta tecnologia em comandos de voz customizáveis para navegar pela interface mais rapidamente, telefonar, atender telefonemas. Usado também na parte militar em caças e helicópteros para controlar frequências de radio, comandar sistemas automáticos, inserir coordenadas e até controlar alguns parâmetros de armas. Muito usado por pessoas com deficiência auditiva ou motora, onde o programa transforma a fala em texto.
  • Como funciona?
    • O funcionamento genérico de um speech recognition é basicamente um humano enviando comandos de voz para que uma maquina ou programa de speech recognition traduza as palavras faladas para um código de maquina que irá ser interpretado e desencadeará ações apropriadas. Ele capta vibrações do som e converte em dados, então analisa a frequência de cada som para tentar reconhecer padrões de fala que posteriormente será fragmentado para analisar sons fonéticos derivados de silabas. Ele então compara o que foi analisado com um banco de dados correspondente em algum idioma, identifica que palavras o som significava e converte para uma funcionalidade.
      • Fonte : National Research Council. 1984. Automatic Speech Recognition in Severe Environments. Washington, DC: The National Academies Press. https://doi.org/10.17226/19357.

SQL


Virtualização


  • Conceito
    • Virtualização é uma tecnologia que permite criar serviços de TI valiosos usando recursos que tradicionalmente estão vinculados a um determinado hardware. Com a virtualização, é possível usar a capacidade total de uma máquina física, distribuindo os recursos entre muitos usuários ou ambientes.
  • Funcionalidade
    • Programas de software chamados hipervisores separam os recursos físicos dos ambientes virtuais que precisam utilizar tais recursos. Os hipervisores podem ser executados em um sistema operacional (como em um laptop) ou instalados diretamente no hardware (como um servidor), que é o tipo de virtualização preferido da maioria das empresas. Os hipervisores dividem os recursos físicos para que sejam utilizados por diferentes ambientes virtuais.
  • Aplicação
    • Agora pense em um computador no qual opere um servidor de e-mails: mesmo que o disco rígido seja plenamente utilizado, não se pode dizer o mesmo sobre sua capacidade de processamento: enquanto ela pode chegar ao ápice em horários de pico (como às 15h), também pode se aproximar da ociosidade durante a madrugada. E se essa “sobra” fosse usada para gerar relatórios, aproveitando melhor o tempo e processamento livres? Na teoria, surtiria a tão desejada economia de recursos; na prática, isso é obtido através da virtualização.


Web

  • Conceito


A web foi desenvolvida por Tim Bernes-Lee no CERN, a organização europeia de pesquisa nuclear em Genebra. Tim desenvolveu a web originalmente como um sistema interno para o gerenciamento de documento [1].

A web foi criada para ser um conjunto de conhecimento humano, que permitisse o compartilhamento de ideias por colaboradores em diferentes locais. A web deveria permitir que documentos desenvolvidos separadamente pudessem ser conectados e visualizados em um mesmo ambiente sem que isso exigisse grandes mudanças. Essas informações estão contidas em servidores espalhados por todo o mundo. Estes servidores estão conectados o que permite que os usuários possam ir de uma para o outro sem muito esforço.

A tecnologia web possui alguns padrões que inclui [2]:

   (a)	Padrão de endereçamento: todos os recursos da web têm um endereço único e podem ser localizados de qualquer lugar, independente da plataforma onde o recurso resida. Cada endereço é chamado de URL (Uniform Resourse Locator).


   (b)	Padrão de comunicação: a tecnologia web utiliza um protocolo de comunicação, ou seja, uma linguagem que permite a solicitação e obtenção de recursos da web. Este protocolo, chamado HTTP (Hypertext Transfer Protocol), permite a busca de recursos em diversos formatos e não somente de hipertexto como o nome sugere.


   (c)	Padrões de estruturação das informações: o padrão inicial da tecnologia web para a apresentação das informações estava baseado em uma linguagem que define principalmente elementos para a visualização de informações chamada de HTML (Hypertext Markup Language) a qual permite de forma extensa como uma informação pode ser estruturada.

A web funciona utilizando o paradigma cliente-servidor. Neste modelo de computação, o processamento é dividido, conforme o nome sugere, entre clientes e servidores. Os clientes solicitam serviços os quais são executados pelos servidores. Os clientes são os navegadores (Chrome, Internet Explorer, Safari, Firefox, etc) que proporcionam a interface com o usuário. Estes navegadores transformam os pedidos dos usuários de forma que os servidores possam entender. Os servidores processam os pedidos e devolvem os dados aos usuários [2].

A figura 1 apresenta como funciona a tecnologia web para acesso a uma web page. O sistema apresentado na figura 1, é extremamente simples onde é possível apenas visualizar o conteúdo da página.

  • Evolução


Mas como tudo a web está evoluindo, a web descrita anteriormente é chamada de Web 1.0, nela é possível apenas visualizar as páginas, ler o conteúdo, assistir a algum vídeo, ou seja, pouca ou nenhuma interação com o usuário.

Com o tempo surgiu a Web 2.0, que além de conter vários elementos da Web 1.0 possui uma grande interatividade com o usuário. Grandes exemplos dessa web são sites como o Facebook, Wikepedia, Sourceinnovation, Youtube, etc. Nesses sites a interação entre usuário e a web page é fundamental, o Facebook não seria o mesmo se as pessoas não dividissem suas experiências e compartilhassem informação; o Youtube não seria uma grande fonte de informação sem o upload de vídeos; e o Wikipedia não teria a grande quantidade de artigos se usuários de todo mundo, com demasiado conhecimento em uma determinada área, não redigissem textos e os acrescentassem aos servidores [3].

No momento estamos na web 3.0. Neste contesto a Web 3.0 não apresentam grandes diferenças da Web 2.0, mas entra em jogo a inteligência artificial e o aprendizado de máquinas. Sites como a Amazon possuem sistemas de inteligência artificial (IA) que recomendam produtos que outras pessoas com o mesmo perfil que o seu compraram. A Netflix, com base nos títulos que o usuário assiste, sugere novos filmes ou series do catálogo. O mesmo ocorre com o Spotify. Neste período também existe a grande conectividade entre os diversos sistemas que existem: celulares, automóveis, casas inteligentes, computadores, etc. Todos esses sistemas estão troncando informações o tempo todo, tudo para facilitar ou otimizar a vida das pessoas [4].

[1] Stair, R. M. e Reynolds, G. W. Princípios de Sistemas de Informação. 6ª ed. Thonson. 2006.

[2] Zaneti Junior, Sistemas de informação baseados na tecnologia Web : um estudo sobre seu desenvolvimento. São Paulo. Dissertação. Universidade Estadual de São Paulo. 2003.

[3] https://www.tecmundo.com.br/web/183-o-que-e-web-2-0-.htm

[4] https://www.youtube.com/watch?v=3rXW_2MTr30

Webservice


  • Conceito:
    • O Web Service é utilizado para integração entre sistemas, possibilitando interações independente do sistema operacional ou linguagem de programação dos mesmos. Isso é possível pois apesar de cada sistema ou aplicação utilizar sua própria linguagem, essa interação é traduzida para uma linguagem universal.
  • Como funciona:
    • A aplicação solicita uma operação. O Web Service se comunica com o banco de dados e retorna o que foi requisitado pela aplicação em uma linguagem universal. A aplicação recebe os dados, faz uma interpretação e os converte para a sua própria linguagem.
    • O Web Service depende de uma linguagem intermediaria para se comunicar com o sistema que faz a requisição, como o SOAP (Simple Object Access Protocol) e o REST (Representational State Transfer).
    • O SOAP utiliza XML para enviar mensagens e, geralmente, serve-se do protocolo HTTP para transportar os dados. Associado ao protocolo SOAP está o documento WSDL (Web Service Definition Language) que descreve a localização do Web Service e as operações que dispõe, fornecendo a informação necessária para que a comunicação entre sistemas seja possível.
    • O REST, protocolo mais recente, tem por objetivo simplificar o acesso aos Web Services. Baseia-se no protocolo HTTP e permite utilizar vários formatos para representação de dados, como JSON, XML, RSS, etc. Tem como grandes vantagens sua flexibilidade, já que não limita os formatos de representação de dados e performance, uma vez que é um protocolo ágil e com a capacidade de transmitir dados diretamente via protocolo HTTP.

  • Beneficios
    • Alguns dos benefícios do Web Service são:
      • Integração de informação e sistemas já que seu funcionamento depende essencialmente de tecnologia XML/JSON e protocolos HTTP, simplificando a comunicação entre sistemas independente de plataformas e linguagens de programação
      • Redução de tempo de desenvolvimento e custos já que os sistemas não são construídos do zero e pode-se incluir funcionalidades com facilidade
      • Maior segurança pois o Web service evita a comunicação direta com a base de dados.


== ERP ==
  • Conceito:
    • ERP é a singla de Enterprise Resource Planning também conhecido como programa de gestão integrada PGI, trata-se de um software que integra totalmente a gestão empresarial favorecendo o fluxo de informações. O ERP possui diversas funções analíticas que favorecem a coleta de dados, otimizado todo o sistema empresarial, agilizando a tomada de decisões por parte dos gestores. O ERP possibilita que todas as áreas da empresa operem de forma integrada, este sistema representou uma revolução para o tratamento dos processos internos das organizações empresarias,pois permitiu que as informações fossem transacionadas em tempo real.
  • Como funciona?
    • O ERP é capaz de receber, controlar e processar de forma estruturada todos os dados dos processos de negócios realizados dentro de uma empresa, ele integra as áreas funcionais em uma unica base de dados. Desta forma o ERP é considerado a espinha dorsal para o e-business pois possibilita o tratamento dos processos externos por meio dos processos internos. O ERP possibilita também o aprofundamento do planejamento estratégico com organizações empresariais mais eficientes e eficazes.
  • Benefícios:
    • Um dos maiores benefícios do uso de ERP's esta na adoção de melhores praticas de negocio, disponibilizado pela variedade de funções deste sistema, que aprimoram a gestão das empresas e promovem maior produtividade e melhorias continuas. Outras vantagens estão na redução dos custos operacionais e na maximização dos resultados ( aumento da lucratividade do negocio).
  • Fonte:
**LUSTOSA L. et all; Planejamento  e Controle de Produção. CAMPOS -ABEPRO , Elservie 2011