| Linha 723: | Linha 723: | ||
*'''Como entender?''' | *'''Como entender?''' | ||
<br> | |||
'''-''' As informações manipuladas pelos seres humanos podem existir através de ideias ou valores. É por causa da inteligência cognitiva que conseguimos discernir as relações entre os dados concretos e abstratos da nossa mente, por exemplo. | '''-''' As informações manipuladas pelos seres humanos podem existir através de ideias ou valores. É por causa da inteligência cognitiva que conseguimos discernir as relações entre os dados concretos e abstratos da nossa mente, por exemplo. | ||
| Linha 736: | Linha 736: | ||
'''-''' Nos seres humanos, a inteligência cognitiva vem sendo uma área do conhecimento explorada de forma contundente, a muito tempo. O aprimoramento das habilidades cognitivas de um ser humano permite a ele agregar diversos conhecimentos, de diferentes áreas, para executar uma função. Algo que as máquinas até então não eram capazes de aprender. | '''-''' Nos seres humanos, a inteligência cognitiva vem sendo uma área do conhecimento explorada de forma contundente, a muito tempo. O aprimoramento das habilidades cognitivas de um ser humano permite a ele agregar diversos conhecimentos, de diferentes áreas, para executar uma função. Algo que as máquinas até então não eram capazes de aprender. | ||
<br> | |||
[[Arquivo: | [[Arquivo : iai.jpg|center|]] | ||
<br> | |||
*'''Como funciona a inteligência cognitiva na tecnologia?''' | *'''Como funciona a inteligência cognitiva na tecnologia?''' | ||
<br> | |||
'''-''' Quando falamos de inteligência cognitiva na tecnologia, estamos inevitavelmente nos referindo à inteligência artificial. Mas, como ela funciona? | '''-''' Quando falamos de inteligência cognitiva na tecnologia, estamos inevitavelmente nos referindo à inteligência artificial. Mas, como ela funciona? | ||
A inteligência cognitiva na tecnologia é capaz de aprender com base em dados uma das matérias-primas inovação, aplicando modelos estatísticos para entender padrões de ocorrências ao longo de determinado período. | A inteligência cognitiva na tecnologia é capaz de aprender com base em dados uma das matérias-primas inovação, aplicando modelos estatísticos para entender padrões de ocorrências ao longo de determinado período. | ||
Edição das 02h25min de 3 de maio de 2019
Debate
| Tópico | Tema 1 | Tema 2 | Tema 3 | Tema 4 | Tema 5 | Tema 6 | Tema 7 | Data |
|---|---|---|---|---|---|---|---|---|
| Hardware | Barramentos | Periféricos | Processadores | Portas | Memória RAM | Disco Rígido | Memória ROM | 09/05 |
| Software | App | ERP | Sistema Embarcado | Frameworks | Firmware | SO | Web | |
| Development | Algoritmos | API | Compiladores | IDE | Linguagens de Programação | Open Source | Webservice | |
| DataBase | Banco de Dados | Normalização | SQL | BigData | ETL | Data Mining | NoSQL | |
| Methods | Canvas | eXtreme Programming | Integração Contínua | Modelo Orientado a Serviço | Scrum | UML | FDD | |
| Net | Firewall | Internet | IP | Protocolos | Redes de Computadores | Roteador | DNS | |
| Cloud | Virtualização | Modem | DNS | Criptografia | Cloud Computing | Plataformas | SaaS | |
| Internet of Things | RFId | Raspberry | IPSec | IoT | CLP | Arduino | Sensores | |
| State of the Art | BlockChain | IA | Inteligência Cognitiva | Machine Learning | RA | Bots | Redes Neurais |
Tabela de Temas
| Nro | Tema | Tópico | Aluno |
|---|---|---|---|
| 01 | Algoritmos | Development | Giovana Campioto |
| 02 | API | Development | Gabriel Rodrigues |
| 03 | App | Software | Elton |
| 04 | Arduino | Internet of Things | Fábio |
| 05 | Banco de Dados | Database | Guilherme Rodovalho |
| 06 | Barramentos | Hardware | Pablo Pierre da Nóbrega |
| 07 | BigData | Database | Pedro Henrique Chagas |
| 08 | BlockChain | State of the Art | Arthur Maia |
| 09 | Bots | State of the Art | Mateus Gonçalves Canavieira |
| 10 | Canvas | Methods | Prof. Luiz Cláudio |
| 11 | Cloud Computing | Cloud Computing | Mateus Ferreira Silva |
| 12 | CLP | Internet of Things | Nathaly V |
| 13 | Compiladores | Development | Carlos Erivelton |
| 14 | Criptografia | Cloud Computing | Guimarães |
| 15 | Data Mining | Database | Samantha |
| 16 | Disco Rígido | Hardware | Marcello |
| 17 | DNS | Cloud Computing | Luís Fellipe de Souza |
| 18 | ERP | Software | Esdras |
| 19 | ETL | Database | Vinicius Prado |
| 20 | eXtreme Programming | Methods | Murilo Medeiros |
| 21 | FDD | Methods | Francisco dos Santos |
| 22 | Firewall | Net | João Pedro Silva Mendes |
| 23 | Firmware | Software | Pedro Henrique Zardini De Souza |
| 24 | Frameworks | Software | Lucas Henrique Couto |
| 25 | IA | State of the Art | Tonus |
| 26 | IDE | Development | Arthur Rodrigues Cardoso |
| 27 | Inteligência Cognitiva | State of the Art | Igor Medeiros |
| 28 | Integração Contínua | Methods | Carlos Henrique Duarte de Carvalho |
| 29 | Internet | Net | Brunno Viegas |
| 30 | IoT | Internet of Things | Nicolli Freitas |
| 31 | IP | Net | Gustavo Alves |
| 32 | IPSec | Internet of Things | Piedro Hammer |
| 33 | Linguagens de Programação | Development | Luís Humberto Rodrigues |
| 34 | Machine Learning | State of the Art | Rick Ricarte |
| 35 | Memória RAM | Hardware | Luiz André |
| 36 | Memória ROM | Hardware | Bryan Ernanes |
| 37 | Modelo Orientado a Serviço | Methods | Dyany |
| 38 | Modem | Cloud Computing | Pedro Alexandre |
| 39 | Normalização (BD) | Database | Wilson Santos |
| 40 | NoSQL | Database | João Victor |
| 41 | Open Source | Development | Fernando Daniel Silva |
| 42 | Periféricos | Hardware | Matheus Gonçalves Coelho de Resende Silvano |
| 43 | Plataformas | Cloud Computing | Augusto Cesar de Barros Silveira |
| 44 | Portas | Hardware/Net | Marco Túlio Candeo |
| 45 | Processadores | Hardware | Victor Buiatti |
| 46 | Protocolos | Net | Rafael Dutra |
| 47 | RA | State of the Art | Lucas Mezencio Santana |
| 48 | Raspberry | Internet of Things | Gabriel Ferreira de Souza |
| 49 | Redes de Computadores | Net | Gabriel Rafah |
| 50 | Redes Neurais | State of the Art | Thalison Henrique |
| 51 | RFId | Internet of Things | Henrique Matheus |
| 52 | Roteador | Net | Tiago Gomes |
| 53 | SaaS | Cloud | Rogério Aguilar Silva |
| 54 | Scrum | Methods | Gustavo Augusto Ferreira |
| 55 | Sensores | Internet of Things | Matheus de Camargo Martins |
| 56 | Sistema embarcado | Software | murilo ferreira |
| 57 | SO | Software | Marco Antonio da Silva Rodrigues |
| 58 | Speech Recognition | State of the Art | Igor Lourenço |
| 59 | SQL | Database | Ramon Maximo |
| 60 | UML | Methods | Bruno Giamatei Bertoco |
| 61 | Virtualização | Cloud Computing | Lucas Capra |
| 62 | Web | Software | Gabriel Marques |
| 63 | Webservice | Development | Vinicius Pereira |
Descrição dos temas
Algoritmos
- Noções de Algoritmos
Algoritmo é a base da ciência da computação e da programação. Quando falamos em programar, falamos, basicamente, em construir um algoritmo. Todo programa de um computador é montado por algoritmos que resolvem problemas matemáticos lógicos com objetivos específicos. Mesmo pessoas que usam uma linguagem de programação para fazer seus programas de computadores estão, na realidade, elaborando algoritmos computacionais em suas mentes. Um algoritmo não passa de passos sequenciais e lógicos que são organizados de forma a realizar a conclusão de certo problema. Mas precisamos entender que existem dois tipos de algoritmos, os Não Estruturados e os Estruturados. Programadores usam algoritmos estruturados, pois se adequam a determinado objetivo ou certo fim. Mas não são apenas os programadores que usam algoritmos. Em nosso cotidiano, os algoritmos Não Estruturados são trabalhados em nossas mentes sem nem mesmo percebermos.
- Algoritmos não estruturados
Em nossa rotina, executamos algoritmos sem perceber. Quando você levanta pela manhã, quando você sai de casa, quando almoça. Você está sempre executando tarefas enquanto realiza análises de decisões, análises de possibilidades, valida argumentos e diversos outros processos. Há muitos exemplos de algoritmos. Um deles são os manuais de instruções. Manuais de instruções sempre contêm informações detalhadas sobre o que fazer em cada situação e nos previnem de maiores problemas.
- Algoritmos Estruturados
São aqueles que buscam resolver problemas através do uso de um computador. São criados com base em uma linguagem de programação e podem ser escritos de diversas formas. Um algoritmo pode ser representado pelo chamado Português Estruturado, que é uma ferramenta que usa combinações de sequências, seleções e repetições. São evitados advérbios e adjetivos, formas verbais diferentes da imperativa, muita pontuação e descrição esparsa.
- Bibliografia
https://www.devmedia.com.br/nocoes-basicas-de-algoritmo/26405
API
- O que é?
- Segundo o Free Online Dictionary of Computing (1994) API é uma ferramenta que que realiza comunicação entre aplicações que desejam compartilhar suas rotinas, ferramentas, padrões e protocolos.
- Exemplificando de maneira mais simples: É uma espécie de mensageiro entre dois ou mais sistemas, exemplificando de maneira familiar, a API é como um garçom de um restaurante. O cliente, neste caso a aplicação que deseja receber os serviços, recebe do garçom o menu com todos os itens daquele restaurante. Ao escolher uma opção o garçom leva este pedido até a cozinha, aplicação da API, onde por sua vez os cozinheiros, que são os serviços compartilhados pela aplicação, realizam o pedido como foi descrito pelo cliente. Ao concluir o pedido o cozinheiro avisa o garçom, este por sua vez entrega o pedido ao cliente completando o processo de exemplificação uma requisição de API.
- Tipos de API.
- Atualmente, muitas API são baseadas em Serviços de webresidentes em hipertexto-padrão, as mais utilizadas no momento são as API baseadas em REST e SOAP.
- REST: Os Serviços web RESTful são qualquer serviço do grupo de abordagens que se molda aos princípios da arquitetura de Transferência de Estado Representativo (REST). Os princípios REST pedem uma arquitetura de cliente/servidor stateless geralmente com base em HTTP. Eles se moldam aos Indicadores de Recurso Universal (URI) e usam os métodos CRED de PUT, GET, POST e DELETE.
- SOAP: O Protocolo Simples de Acesso aObjetos (SOAP) baseado em Serviços de Web é baseado no protocolo WC3. O WC3 estabelece que o “SOAP é um protocolo mais leve para a troca de informações em um ambiente descentralizado e distribuído”. Geralmente está associado à Linguagem de Descrição de Serviços Web (WSDL) e UDDI. A WSDL é definida como uma linguagem baseada em XML para descrever os serviços web.
- Como funciona?

- Por que devemos desenvolver e utilizar API.
- Dentre diversos motivos, os principais que podemos citar, de acordo com Luckas Frigo do site Moblee, são:
- 1) Não ficar refém de uma tecnologia ou serviço.
- O primeiro motivo é não ficar refém de uma tecnologia específica. Pode ser a troca de banco de dados, de linguagem de programação ou um serviço de terceiros que pode deixar de existir.
- 2) Centralizar informações e regras de negócio.
- Parece bem óbvio e é a principal função de qualquer API, mas nós já passamos por casos em que o sistema que nós estávamos integrando não tinha uma API. Nós tínhamos acesso direto a um banco de dados. Agora imagina se nós estivéssemos na mesma situação: cada aplicação lendo e escrevendo do jeito ela acha melhor, sem uma API no meio para validar regras e garantir que os dados estão consistentes. Seria o caos.
- 2) Centralizar informações e regras de negócio.
- 3) Aplicar regras de integração customizada
- Gerenciar regras de integração customizadas. Como assim? Principalmente quando você tem um produto white-label, é necessário ter regras de integração diferentes para clientes diferentes. Por exemplo, nós temos um produto que é um leitor de contatos que coleta dados a partir da credencial do participante. Por isso, nós temos que integrar dados com diversos sistemas de credenciamento para conseguir conectar a informação da credencial com os dados do participante. Nesse processo, é bem comum acontecerem mudanças de última hora no formato do código da credencial. Como o processo de republicar um app é relativamente lento, não é possível garantir que todos os usuários estejam com a versão mais atualizada e fica a cargo da API conseguir contornar essas situações.
- 3) Aplicar regras de integração customizada
- 4) Autenticar o usuário em sistemas diferentes
- Como eu já citei, nosso produto é white-label e se integra com vários sistemas dependendo de cada cliente. Às vezes, não basta que o usuário faça login na nossa base, é preciso autenticá-lo no sistema do cliente também. Imagine ter que ensinar o seu app a se logar em cada sistema. Agora imagine se alguma regra de autenticação do sistema do cliente muda após o app já estar publicado. Seria uma dor de cabeça ter que republicar todos os aplicativos que dependem dessa integração. Por isso, contar com a API ajuda a manter a consistência das chamadas que o app faz e diminui a chance da sua republicação.
- 4) Autenticar o usuário em sistemas diferentes
- 5) Segmentar informações
- Existem vários casos em que você precisa segmentar informações de acordo com a aplicação que está solicitando-a. O CMS, por exemplo, precisa de informações que os apps não precisam. Eventualmente, pode ser preciso diferenciar informações para usuários de Android ou iOS. O envio de notificações é um caso de exemplo bem comum. Se precisamos publicar algum tipo de atualização crítica no app iOS e notificar aos usuários, não é necessário que os usuário de Android também recebam essa notificação. Essas regras de segmentação de informação quem cuida é a API.
- 5) Segmentar informações
- 6) Internacionalizar
- Internacionalizar costuma ser um problema para quem está crescendo internacionalmente. Nós temos aplicativos publicados em vários países e em várias línguas: português, inglês, espanhol… até mesmo tailandês. Independente de utilizar uma solução pronta de API ou ter a sua própria API, ela ajuda a manter a consistência entre dados internacionalizados. É bem comum acontecer dos nossos cliente traduzirem uma parte do conteúdo e deixar partes sem tradução. A API nos ajuda a manter a consistência, entregando a informação numa língua padrão, caso aquela informação não tenha sido ou não precise ser traduzida.
- 6) Internacionalizar
- 7) Dar suporte a versão antiga do app
- Quem nunca passou por isso, um dia vai passar. Continuamente sua aplicação vai ganhar novas funcionalidades e novas regras de negócio. O aplicativo dos usuários que não atualizarem para a última versão pode ficar inutilizável se a API não souber lidar com essas mudanças. Como você não controla quais usuários de fato fizeram atualização, fica difícil gerenciar esse tipo de coisa sem ter uma API responsável, pois é ela que mantém a consistência das regras de negócio.
- 7) Dar suporte a versão antiga do app
- 8) Controlar o endpoint
- Mesmo que você use um serviço como o Firebase por trás da sua API, é importante que você controle o endpoint, ou seja, a URL pela qual suas aplicações acessam a API. Isso reflete tanto a dependência de serviços de terceiros, quanto o suporte à atualização que comentamos.
- 8) Controlar o endpoint
- Referências Bibliográficas
App
- Conceito
- Aplicativo é um software que executar sequencias de comandos para realizar determinado objetivo pela qual foi projetado em um smartphone ou tablet.
- Ações executadas por aplicativos em sua maioria são para agilizar algum processo, diminuir custos ou substituir mão de obra.
- Aplicativos podem ser nativos ou híbridos.
- Aplicações nativas
- É aquele aplicativo que foi projetado para determinada plataforma. Ex: Android e IOS.
- Pode explorar o máximo do sistema operacional para qual foi desenvolvido.
- Caso o aplicativo tenha a necessidade ser executado em duas plataformas mobile (Android e IOS), então deve ser desenvolvido para cada plataforma separadamente.
- É uma ótima opção para clientes que desejam mais confiabilidade, segurança e comunicação direta com as funcionalidades do sistema operacional.
- Aplicações híbridas
- São aqueles aplicativos desenvolvidos tanto com códigos nativos quanto web, ou seja, podem desfrutar de recursos da internet e do sistema na qual está sendo executado.
- Não podem usar funcionalidades do dispositivo, sendo necessário o intermédio de um framework para ser possível a utilização de funcionalidades como por exemplo GPS e câmera.
- São mais rápidos e tem um custo de desenvolvimento menor do que aplicativos nativos. O tempo e custo reduzido é justificado pelo fato de ser necessário desenvolver aplicação apenas uma vez, já que o software roda em qualquer plataforma.
- Ferramentas de desenvolvimento
- Para o desenvolvimento dessas aplicações são utilizados algumas ferramentas como: editor de texto, IDE, framework, API, compilador, etc.
- Para desenvolver aplicações mobiles são utilizados em sua maioria IDEs e frameworks para agilizar e facilitar o processo de desenvolvimento.

- Ferramentas mais utilizadas
- Xamarin
- Android Studio
- Ionic
- React Native
- Unity
- Xcode
- Referências bibliográficas
Arduino
Banco de Dados
- O que é?
- Um banco de dados é uma forma de armazenar informações em disco de uma forma estruturada. Banco de dados são conjuntos organizados de dados, que se relacionam com outros para criar uma informação e dar mais eficiência durante uma pesquisa ou estudo. Atualmente, os bancos de dados são a principal parte de um sistema de informação, pois é nele que está toda a informação que o sistema é alimentado. Os bancos costumam perdurar por vários anos ou até décadas sem alteração na sua estrutura. A principal aplicação é no controle de operações empresariais e no gerenciamento de informações de estudos.

- Principais ferramentas:
- Sistemas Gerenciadores de Banco de Dados (SGBD’s) ou em inglês Data Base Management System (DBSM), que como o nome sugere, são softwares de Gerenciamento de Banco de Dados, que são utilizados pelos programadores ou DBA’s, para consultar os bancos de dados. Com a evolução desses softwares, vários modelos de armazenamento de dados foram criados, como o Modelo hierárquico, Modelo em rede, modelo orientado a objetos e outros, cada um com suas particularidades, vantagens e desvantagens.

- Abstração de dados
- O sistema de banco de dados deve oferecer uma visão abstrata dos dados que lá estão armazenados, por exemplo, o usuário não precisa saber qual criptografia está sendo usada ou se está sendo usada, ele não precisa saber a normalização do banco, ele não precisa saber qual unidade de armazenamento está sendo utilizada, contando que quando ele precisar o dado esteja disponível para ele quando precisar. A abstração se dá em 3 níveis:
- Nível de visão do usuário: as partes do banco que o usuário tem acesso, de acordo com a necessidade individual.
- Nível Conceitual: aqui é definido quais dados estão armazenados, e qual o relacionamento entre eles.
- Nível físico: aqui define efetivamente como os dados estão armazenados, o nível mais baixo de abstração.
- Projeto de Banco de Dados
- Todo sistema de banco de dados deve apresentar um projeto da forma que os dados estão sendo armazenados a sua organização, e as técnicas utilizadas na produção do banco, para que no futuro facilite as possíveis manutenções. Esse projeto de banco de dados se dá em duas partes: projeto lógico e modelo conceitual. Essas fases são aplicadas na documentação de um banco de dados não implementado, no caso de ser um banco de dados já implementado, é utilizado a técnica de engenharia reversa para deduzir quais as técnicas que foram utilizadas para a produção desse banco.
- Referências bibliográficas
Barramentos
- É um conjunto de linhas de comunicação que permitem a interligação entre dispositivos, como a CPU, a memória e outros periféricos. Os barramentos podem ser chamados também de interfaces, portas, conectores, slots. Com a evolução do computador surgiram vários outros tipos de barramentos: USB, Firewire, Tunderbolt, Serial, PS/2, SuperVideo/VGA/HDMI. Os processadores mais modernos, sejam da Intel ou da AMD, possuem um barramento extremamente rápido para se comunicarem com a memória e assim transferirem dados sem perda de desempenho.

- Funções
- Comunicação de Dados: função de transporte dos dados. Tipo bidirecional;
- Comunicação de Endereços: função de indicar endereço de memória dos dados que o processador deve retirar ou enviar. Tipo unidirecional, e;
- Comunicação de Controle: função que controla as ações dos barramentos anteriores. Controla solicitações e confirmações. Tipo bidirecional.
- Tipos de Barramentos.
- Na arquitetura de computadores são caracterizados como síncronos e assíncronos.
- Barramento Sincrono:
- Barramento do Processador: É utilizado pelo processador internamente e para envio de sinais para outros componentes do sistema computacional.Atualmente, os barramentos dos processadores (os de transferência de dados) têm sido bastante aprimorados com o objetivo de maior velocidade de processamentos de dados.
- Barramento de Cache: É o barramento dedicado para acesso à memória cache do computador, memória estática de alto desempenho localizada próximo ao processador.
- Barramento de Memória: É o barramento responsável pela conexão da memória principal ao processador. É um barramento de alta velocidade que varia de micro para micro e atualmente gira em torno de 512 MHz a 8192 MHz, como nas memórias do tipo DDR3.
- Barramento de Entrada e Saída: É o barramento I/O (ou E/S), responsável pela comunicação das diversas interfaces e periféricos ligados à placa-mãe, possibilitando a instalação de novas placas, os mais conhecidos são: PCI, AGP e USB.
- Barramento de Dados: É o barramento Data Bus, responsável por transportar informação da instrução (através do código de operação), variável do processamento (cálculo intermediário de uma fórmula por exemplo) ou informação de um periférico de E/S (dado digitado em um teclado). O tamanho da via de dados determina respectivamente o máximo número de instruções (e portanto o potencial de processamento) e a precisão do processamento aritmético (através do cálculo de ponto flutuante) ou o número de símbolos possíveis a ser representado (por exemplo, pontos de uma foto).
- Barramentos assíncronos:
- Os barramentos assíncronos não possuem clock e por sua vez adotam um protocolo chamado de "aperto de mão" ou handshake para estabelecer a comunicação entre os dispositivos assim podendo ser mais adaptável a dispositivos novos ou lançamentos pois ele não possui velocidade fixa.
- Referências
https://americnet.wordpress.com/2010/03/18/tipos-de-barramentos-do-computador/ https://pt.wikipedia.org/wiki/Barramento https://www.hardware.com.br/livros/hardware/barramentos.html https://canaltech.com.br/hardware/O-que-e-um-barramento/ Infraestrutura de Hardware –Juliana Regueira Basto Diniz, Abner Corrêa Barros - Volume 2
BigData
BlockChain
- O que é?
- Blockchain, uma das tecnologias por trás do Bitcoin, a maior criptomoeda já inventada. Basicamente um banco de dados online, público e descentralizado, criado para tornar a distribuição de informações transparente e confiável, não dependendo assim de um agente externo e/ou centralizador que valide o processo.
- Rede Peer-to-Peer (P2P)
- Formado por uma rede de computador interligados, conhecido como rede peer-to-peer. Cada criptomoeda possui sua própria Blockchain. Como dito antes, a tecnologia Blockchain é formada por uma rede peer-to-peer, que é nada mais que uma arquitetura de redes de computadores onde cada um dos pontos ou nós da rede funciona tanto como cliente quanto como servidor, permitindo compartilhamentos de serviços e dados sem a necessidade de um servidor central, como pode ser visto na imagem abaixo.

- Como funciona?
- Nesta tecnologia revolucionaria, os computadores da rede são responsáveis por validar as transações. No caso do Bitcoin, toda vez que uma transação é realizada, é verificada pelos membros da rede registrada no blockchain correspondente. Por intervalos regulares de tempos (o tempo varia sobre as criptomoedas, no caso da bitcoin, 10 minutos), essas novas transações são reunidas em blocos, criptografadas e adicionadas a uma cadeia de blocos (blockchain) que guarda e registra também as transações passadas.

- Vantagens
- Eliminação de troca por intermediário e falta de confiança;
- Empoderamento dos usuários;
- Alta qualidade de dados;
- Durabilidade, confiabilidade e longevidade;
- Integridade de processo;
- Transparência e imutabilidade;
- Simplificação de ecossistema;
- Transações mais rápidas;
- Menor custo por transação;
- Digital.
- Desvantagens
- Tecnologia nascente;
- Estado regulatório instável;
- Grande consumo de energia;
- Controle, segurança e privacidade;
- Questões de integração;
- Adoção cultural;
- Custo;
- Referencias Bibliográficas
Bots
- Bots são tipos específicos de programas de computadores implantados em outros sistemas para automatizar partes do funcionamento de um todo, realizando as tarefas de forma autônoma desde facilitar a navegação na internet até interagir com indivíduos, feito a partir de algoritmos que foram programados anteriormente. Os Bots são divididos em áreas dependendo do que fazem no programa, tem diversos e usados de formas variadas, como os crawlers, os chatbots e até usado em videogames
- Os conceitos para a realização desses softwares se iniciaram com Alan Turing ,que ,em 1950, definiu um conceito comum para o que seria Inteligência Artificial que até então era inexistente. Alan Turing elaborou então um teste que até hoje é utilizado para confirmar se uma máquina é ou não uma IA, o teste se baseava em um dialogo entre um ser humano e uma máquina e depois de algumas perguntas e respostas o ser humano não conseguisse distinguir que estava dialogando com uma máquina, tal poderia ser considerada verdadeiramente uma IA.
- Os Chatbots ferramentas software capazes de propor um diálogo com o ser humano em linguagem natural que foram fundamentados através do teste de Turing, o dialogo se desenvolve através da capacidade de compreensão do sistema e da simulação do comportamento humano. A concepção mais aceitada sobre os chatbots seria de Simon Laven que diz " ... um programa que tenta simular uma conversa escrita, e que tenta, pelo menos temporariamente, se parecer com um ser humano". Com isso percebemos que os objetivos dos chatbots e da IA, estão conectadas, no que se refere na proximidade com o comportamento humano.
- Os crawlers são programas automatizados e metódicos que faz downloads de páginas WEB para criar índices ou caches sobre as mesmas. É aplicado em diversas áreas desde obter informações até mesmo mapear uma gama de sites, sendo muito utilizado por empresas que possuem motores de busca em sites, como o Google e o Mozila Firefox.
- Fontes:
http://www.inf.ufsc.br/~luis.alvares/INE5644/G1_WebCrawlers.pdf
http://www.cin.ufpe.br/~tg/2016-2/jhcl.pdf
http://www.internetlab.org.br/wp-content/uploads/2018/07/Relat%C3%B3rio-Bots-ou-n%C3%A3o.pdf
Canvas
- O Business Model Canvas é uma ferramenta estratégica que contribui de forma significativa para a construção rápida e visual de novos 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 negócio, antes de partir de fato para a formatação do produto ou serviço.
- Abaixo apresentamos a dinâmica de montagem do Modelo Canvas sugerida por Osterwalder.

- Para aplicar o Canvas, pode-se utilizá-lo impresso em um tamanho A4 ou A3 para facilitar o trabalho colaborativo; 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.
- O Canvas, que apresentamos 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.
- Segmentos de Clientes
- Começamos preenchendo o bloco Segmentos de Clientes (Customers Segments), buscando mapear para quem se está criando valor e quem são os potenciais clientes para os objetivos pretendidos.
- Exemplos de segmentos de clientes:
- Consumidores da classe C
- Mulheres
- Idosos
- Consumidores de uma cidade
- etc.
- Proposta de Valor
- No bloco Proposta de Valor (Value Proposition) são criadas propostas que atendam a determinadas necessidades dos potenciais clientes, sempre tendo os objetivos de negócio norteando a dinâmica.
- Exemplo de propostas de valor:
- Conveniência
- Personalização
- Apoio a decisão
- Rapidez
- Redução de custos
- entre outros.
- Os Segmentos de Clientes e as Propostas de Valor são os principais elementos, sobre os quais todo o restante do Canvas se apoiará.
- Canais de Distribuição
- Uma vez que já se tem uma prévia de clientes potenciais e propostas de valor, é necessário pensar em como fazer com que estes dois elementos fundamentais se encontrem.
- Logo, são definidos e sugeridos os Canais de Distribuição (Channels), como:
- Entrega à domicílio
- Site de conteúdo
- Newsletter
- Atendimento presencial
- entre outros
- através dos quais será possível distribuir e entregar as propostas de valor.
- Uma vez que já se tem uma prévia de clientes potenciais e propostas de valor, é necessário pensar em como fazer com que estes dois elementos fundamentais se encontrem.
- Relacionamentos com os Clientes
- Também é preciso entender como se dará os Relacionamentos com os Clientes (Customer Relationships), que deve ter o propósito de fortalecer o envolvimento do cliente com o negócio.
- São exemplos de relacionamentos com clientes:
- Canal de perguntas e respostas
- Ouvidoria
- SAC
- Atendimento pós-venda
- Serviços automatizados.
- Receita
- Por fim, na dimensão direita, temos as Linhas de Receita (Revenue Stream), que registram como a solução em construção pretende gerar receitas, tendo como base as propostas de valor sugeridas.
- Alguns exemplos:
- Venda de assinaturas mensais
- Venda direta
- Retorno em publicidade paga
- Aluguel.
- Recursos-Chave
- Na dimensão esquerda do Canvas encontramos algumas definições mais objetivas, que irão sustentar os elementos mapeados na dimensão direita.
- Os Recursos-Chave (Key Resources) são os recursos ligados diretamente ao funcionamento do modelo de negócio.
- Podem ser:
- Equipes
- Máquinas
- Investimentos
- Plataformas de tecnologia
- Atividades-Chave
- As Atividades-Chave (Key Activities) são todas as atividades sem as quais não seria possível atender as propostas de valor, construir os canais necessários e manter os relacionamentos.
- Podem ser atividades-chave:
- Acompanhar redes sociais (uma atividade interessante para contribuir com o relacionamento com os clientes)
- Construir uma loja (que pode se relacionar com as propostas de valor e canais específicos)
- Aprender uma tecnologia que serve de base para o desenvolvimento de uma solução
- Monitorar outras soluções para avaliar se a sua está dentro dos padrões;
- Parceiros-Chave
- Já os Parceiros-Chave (Key Partners) são todos aqueles que podem contribuir tanto com as Atividades-Chave quanto com os Recursos-Chave.
- Algumas parcerias:
- Fornecedores de Tecnolologia, podem disponibilizar máquinas para atender a algum Recurso-Chave.
- Algumas parcerias podem contribuir com pessoas ou realizando diretamente alguma das Atividades-Chave, como Monitorar redes sociais
- Outras podem fornecer uma plataforma que se conecta com a sua para prover o serviço final.
- Custos
- Representando os custos necessários para se manter e construir toda a solução proposta, há o bloco Estrutura de Custos (Costs Structure), que indica, por exemplo:
- a necessidade de se Pagar a manutenção das máquinas previstas,
- Pagamentos dos parceiros contratados,
- Custo recorrente de infraestrutura
- Custo das equipes envolvidas
- e assim por diante.
- Representando os custos necessários para se manter e construir toda a solução proposta, há o bloco Estrutura de Custos (Costs Structure), que indica, por exemplo:
- Exemplo de projeto:

- Referências bibliográficas:
- A Osterwalder, Y Pigneur, G Bernarda, A Smith - 2014 - books.google.com
- Professor Dale Brant
Cloud Computing
- Definição
- Cloud Computing ou Computação em nuvem é um termo para descrever um ambiente de computação baseado em uma imensa rede de servidores sejam estes virtuais ou físicos. Uma definição simples pode ser "um conjunto de recursos como capacidade de processamento, armazenamento, conectividade, plataformas, aplicações e serviços disponibilizados na Internet". O significado de nuvem hoje é certamente ligado a um lugar onde se pode armazenar dados e onde aplicações podem usar recursos computacionais da nuvem ou elas podem ser executadas lá.
- Vantagens
- Elasticidade: a computação em nuvem oferece elasticidade permitindo que as empresas usem o recurso na quantidade que forem necessários, aumentando e diminuído a capacidade computacional de forma dinâmica.
- Pagamento: o pagamento dos serviços em nuvem é pela quantidade de recurso utilizados (pay-per-use). Nesse estilo de pagamento a conta é cobrada de acordo uso de dados e com o número de acessos que seus dados armazenados na nuvem foram usados.
- Comodidade: muitas empresas utilizam da computação em nuvem para evitar a dor de cabeça de ter um data center próprio e seus próprios servidores, sendo assim tendo que se preocupar com detalhes como segurança, preservação, manutenção dos servidores.
- Segurança: a segurança da empresas que oferecem serviços de computação em nuvem utilizam de vários métodos de segurança, valendo destacar entre eles os backups das informações. Uma analogia interessante de se fazer seria com um banco, "Você entrega seu dinheiro pra o banco pois sabe que ele estará mais seguro no banco de que com você e quando necessita dele é só ir saca-lo"
- Referências bibliográficas:
- https://books.google.com.br/books?hl=pt-BR&lr=lang_pt&id=mvir2X-A2mcC&oi=fnd&pg=PA1&dq=cloud+computing+&ots=CaJo6HLNUq&sig=zC8_RdJfBYXgHZVU-LjeNiMeLQI#v=onepage&q&f=true
- http://seer.upf.br/index.php/rbca/article/view/3084
CLP
- O que é CLP ?
CLP é a sigla ara Controladores Lógicos Programados ou Programmable Logic Controllers (PLC) em inglês, são computadores responsáveis por executar funções especificas utilizando um programa carregado. CLPs se assemelham muito com Computadores comuns, porem são desenvolvidos para operar em ambientes agressivos, suportando vibrações, poeira e outras condições que poderiam danificar uma CPU normal, alem de permitir várias inserções de módulos de entrada e saída. Basicamente ele opera utilizando sinais analógicos ou digitais, sensores, módulos, chaveamentos, entre outros e sua estrutura é composta por 4 patamares: entradas e saídas, CPU, Backplane ou Rack com fonte de alimentação e seção de programa e é composto por CPI, Memoria RAM e RUN e Portas de Comunicações (COM).
- Sinais analógicos e digitais
Sinais digitais são sinais que possuem apenas 2 (duas) variações de status (botões que permitem que o aparelho seja ligado ou desligado por exemplo), são sinais mais simples também chamados de contínuos por serem específicos e darem resultados previsíveis. Já os sinais analógicos possuem uma configuração mais complexa que permite um status variante com valores intermediários entre um minimo e um máximo ( como um termômetro de medição que emite valores diversos, não se atendo somente a 0 ou 100). Em uma CLP, esses sinais são cruciais na decisão do tipo de entrada e saída que irá ocorrer.
- Backplane ou Rack com fonte de alimentação
O RACK têm a função de interconetar todas as partes da CLP e permitir a alimentação e comunição entre elas, ele fornece montagem física para as In/Out (entradas e saídas) e conexão eletrica dos barramentos entre modulos(barramentos de dados que estabelecem um link de comunicação entre todos os modulos de In/Out AAbaixo pode-se ver um RACK com expansão e logo abaixo um Rack com CPU;


- Cartão de Entradas e Saidas (In/Out)
O Cartão de entradas é qualquer coisa que possa permitir a entrada de um sinal ao CLP e permitir a execução do programa, podendo ser de sinal analogico ou digital
- veja um exemplo abaixo:

As Saídas tambem podem ser de sinais analogicos ou digitais: ao se ter uma entrada analogica ela vai converter o sinal para digital que ao ser processado será enviado para um cartão de saida analogica que transformara esse sinal em analogico ou vice versa. eles servem para fazer acionamento simples como ligar lampadas ou valvulas etc.
- veja um esquema de entradas e saidas abaixo:

- CPU
É basicamente o cerebro da CLP e atua em quatro modos: Programação, Run, Stop e Reset
- No modo Programação a CPU faz o carregamneto da logica do programa desenvolvido por uma pessoa
- Após entra em modo Run em que está completamente operante com as funções do programa
- No modo Stop a CPU está parada e náo opera, desligando todas as saidas e checando as entradas
- No modo Reset a CPU é reiniciada para as configurações iniciais, caso seja feito sem eliminar os dados registrados é chamado de Warm Reset, caso os dados sejam apagados é chamado de Cold Reset
- Programa
é desenvolvido por uma pessoa em um computador proprio para CLP, a maioria das CLPs usa a linguagem Ladder, desenvolvida para facilitar a programação. O programa define oque será feito pela CLP
- Referencias
- https://alfacompbrasil.com/2019/02/11/clp-o-que-e-e-como-funciona/
- https://www.citisystems.com.br/clp/
- https://www.youtube.com/watch?v=RnYqTpuLWAA
- http://saladaautomacao.com.br/clp/
- https://www.saladaeletrica.com.br/o-que-e-clp/
Compiladores
Definição
- O que são compiladores ?
Um compilador nada mais é que uma aplicação com a função traduzir programas. Basicamente ele pega programa desenvolvido em uma linguagem de alto nível e o transforma em seu correspondente em baixo nível.
Um compilador é um software complexo, que cumpre o papel de traduzir, converter e ligar um programa escrito em linguagem de programação ou linguagem fonte em um programa de linguagem de máquina ou linguagem objeto. Ou seja, converte um programa escrito em linguagem de programação para uma linguagem cuja o computador entenda. No início, os compiladores não traduziam diretamente a linguagem fonte para a linguagem objeto, fazendo-se necessária a tradução em uma linguagem simbólica (Assembly), para que a partir de tal seja feita a tradução em linguagem objeto. Concluímos então que os compiladores são de suma importância nos tempos atuais, sabendo que cada vez mais há o estreitar da relação homem/máquina, sendo os compiladores hoje, peça fundamental de diálogo e aprimoramento das tecnologias que surgem atualmente.

- Referências:
- Santos ,Pedro Reis; Langlois ,Thibault. Compiladores - da teoria à prática. 1° edição, FCA editora, 2014.
- https://www.dicio.com.br/compilador/
- http://www.dca.fee.unicamp.br/~eleri/ea876/04/cap3.pdf
- http://producao.virtual.ufpb.br/books/tautologico/compiladores-livro/livro/livro.pdf
Criptografia
- Conceito
- Ferramenta de segurança digital utilizada em programação com o objetivo de proteger as informações de um arquivo. Tal instrumento de proteção garante quase por completo o bloqueio do acesso de terceiros ou usuários indesejados. Outrossim, o termo criptografia não é recente, pois surgiu na Grécia Antiga, kryptós (oculto/escondido) e gráphein (escrita/textos). Porém, como toda sociedade evolui e moderniza, tanto o instrumento como a sua definição passou por aprimoramento, portanto, a preservação de dados é crucial nos dias atuais.
- Tipos de Criptografia
- Criptografia Simples (SSL)
- Programa de proteção simples que garante a validação de medidas de segurança de um domínio, tal programa é recomendado para todo site mesmo que próprio não armazene dados do usuário. A maneira mais fácil de reconhecer se o site utiliza o SSL é procurar pelo ícone de um cadeado verde ao lado da URL, isso significa, criptografia simples ativa.
- Criptografia de Validação Estendida (SSL EV)
- Uma versão aprimorada do SSL extremamente recomendada para sites de comércio eletrônico.
- Certificado WildCard
- Diferente do SSL o WildCard protege não só o domínio principal, como também os sub-domínios em um só certificado. Essa criptografia é destinada a administradores de várias páginas ou sites.
- Certificado Multidomínio (MDC)
- Direcionado para empresas que possuem diversos domínios, pois o MDC assegura a defesa digital de até 210 domínios em um só certificado (SSL), sobretudo, todos são validados com HTTPS.
- Certificado Multidomínio EV (MDC EV)
- Uma versão aprimorada do MDC com enfoque na razão social da empresa.
- Certificado Multidomínio SAN (UCC)
- O UCC funciona apenas para aplicações Microsoft, no mais, não há diferenças notórias em relação a certificado de proteção.
- Certificado CodeSign
- Criptografia para e-mails (S/MIME)
- Criptografia simétrica
- Criptografia assimétrica
- Hashing
- Criptografia Simples (SSL)
- Como Criptografar?
Data Mining
Disco Rígido
DNS
ERP
ETL
eXtreme Programming
FDD
Firewall
Firmware
Frameworks
IA
- Conceito
A inteligência artificial é uma tecnologia analisada a décadas, tendo parte de seu conceito deturpado por obras de ficção. Entretanto, o verdadeiro conceito da IA é simples: pensar, decidir e solucionar problemas de maneira independente e racional, assim como um humano, mas tendo um acesso infinitamente maior à dados de apoio. A IA tem presença constante em cada momento do cotidiano da civilização contemporânea, como no corretor ortográfico do celular, onde a medida que o usuário insere informações, a máquina "aprende" com esses dados e entende as sugestões de correção mais adequadas nas frases. Atualmente, o conceito mais comum de IA que temos no dia a dia é a IA Fraca, que é uma inteligência artificial direta, focada em um número limitado ou em uma única função e usando dados relacionados apenas a ela. Exemplos da IA Fraca podem ser observados em:
- Reconhecimento Facial
- Corretor ortográfico
- Sugestão em pesquisas na internet
Porém, o objetivo a longo prazo é desenvolver uma IA Forte, ou IA Geral. Enquanto a IA Fraca supera a capacidade humana em uma tarefa específica, a IA Forte pode fazer isso em todas as atividades que um humano pode realizar.
- Definições dentro de IA
Inteligência Artificial não é algo único, mas sim uma tecnologia feita da conexão de 3 conceitos principais:
- Machine Learning:
- Em vez de programar regras para uma máquina e esperar o resultado, conseguimos deixar que a máquina aprenda essas regras por conta própria a partir dos dados, chegando ao resultado de forma autônoma. As recomendações personalizadas na Netflix e na Amazon, por exemplo, indicam os títulos de acordo com o que o usuário assiste. Conforme você inclui dados (assiste) o sistema aprende os gostos do cliente.
- Deep Learning:
- É a parte do aprendizado da máquina que utiliza algoritmos complexos para “imitar a rede neural do cérebro humano” e aprender uma área do conhecimento com pouco ou sem supervisão. Por exemplo, um sistema pode aprender como se defender de ataques sozinho.
- Processamento de Linguagem Natural:
- Esse processamento utiliza as técnicas de machine learning para encontrar padrões em grandes conjuntos de dados puros e reconhecer a linguagem natural. Assim, um dos exemplos de aplicação é a análise de sentimentos, onde os algoritmos podem procurar padrões em postagens de redes sociais para compreender como os clientes se sentem em relação a marcas e produtos específicos.
- Importância da IA
A IA automatiza a aprendizagem repetitiva e a descoberta a partir dos dados. Mas a inteligência artificial é diferente da automação robótica guiada por hardwares. Em vez de automatizar tarefas manuais, a IA realiza tarefas frequentes, volumosas e computadorizadas de modo confiável. Para este tipo de automação, a interferência humana ainda é essencial na configuração do sistema e para fazer as perguntas certas.
A IA adiciona inteligência aos diversos produtos e serviços utilizados pela população. Um exemplo que está em alta hoje em dia são os chatbots, avatares virtuais de lojas ou aplicativos que funcionam como um "atendimento ao cliente". Ao ser aprimorada com cada vez mais dados de diversos usuários, a IA aprende com eles, aprimorando-se. Nota-se assim, uma adaptação da máquina, que com a entrada constante de dados, ela é capaz de ensinar a si como realizar uma atividade, seja ela dirigir um carro ou recomendar um filme.
Além da sua função na área de entretenimento, a Inteligência artificial pode tomar um rumo para a segurança pública, como detecção de fraudes ou o reconhecimento facial de pessoas suspeitas de terem cometido um crime, usando da técnica de Deep Learning. Ela pode também ser utilizada na área médica, para reconhecer sintomas e até mesmo encontrar cânceres em ressonâncias.
Em suma, cada aspecto do cotidiano pode ter a utilização e terá benefícios com a inteligência arfiticial, desde o lazer, até a área de saúde, segurança, esportes ou comércio, auxiliando as tarefas manuais exercidas pelos humanos ou por máquinas inferiores, visando sempre recolher o máximo de dados possíveis para obter os melhores resultados.
- Desafios do uso de IA
O principal limite da inteligência artificial são os dados. Não há outra maneira do conhecimento ser passado à máquina sem eles, logo, caso estejam incorretos, os resultados serão comprometidos. Sendo assim, camadas independentes para prever esses erros devem ser adicionadas uma a uma. Como citado anteriormente, atualmente temos apenas IA's Fracas, sendo assim, uma IA que joga xadrez não pode fazer correções ortográficas. Uma IA que detecta fraudes não pode dirigir um carro. Portanto, elas são focadas em tarefas independentes e são incapazes de levar em conta todo o comportamento humano. Entretanto, existem dois cenários considerados mais comuns pelos pesquisadores ao analisar os rumos em que a IA assuma um risco:
- Uma IA que seja programada com intúitos de causar dano, como o de armas autônomas. Nas mãos erradas, pode ter resultados devastadores à vida humana.
- Uma IA programada para fazer algo benéfico, mas que desenvolve uma maneira caótica de alcançar seu objetivo. Ao falhar na programação do sistema para alinhar o raciocínio do programador e o da máquina, ela pode interpretar os dados sem analisar o "caminho" percorrido para chegar até ele. Por exemplo, ao pedir que um carro que dirige sozinho o leve até algum lugar, ele pode cometer diversas infrações de trânsito e/ou crimes para alcançar o seu destino, interpretando que o que ele fez foi correto, já que não fora programado corretamente.
- Como programar uma IA
Existem diversas bibliotecas com algoritmos e recursos já prontos, como:
- OpenCV, uma biblioteca open source de funções de programação voltadas especificamente para visão computacional. De maneira resumida, ela facilita o processo de permitir que os sistemas “entendam” imagens. O OpenCV é usado em casos que necessitam desse tipo de capacidade de interpretação de imagens.
- SciKit, que contém uma série de recursos de código aberto voltados para machine learning. Trata-se de uma biblioteca que também é usada por empresas como Spotify, Evernote, Change.org e OkCupid.
- KERAS, uma biblioteca open source de redes neurais, criada especificamente para permitir a realização de experimentos rápidos com redes neurais profundas. Resumidamente, ele facilita o processo de implementar e testar redes mais complexas.
Todas essas ferramentas têm em comum o suporte a Python, que é uma linguagem de programação que facilita o processo de rodar experimentos e provas de conceito rapidamente.
- Referências Bibliográficas
- https://futureoflife.org/background/benefits-risks-of-artificial-intelligence/?cn-reloaded=1
- https://www.sas.com/en_us/insights/analytics/what-is-artificial-intelligence.html
- https://canaltech.com.br/inteligencia-artificial/entenda-a-importancia-da-inteligencia-artificial-100442/
- https://cryptoid.com.br/inteligencia-artificial/como-programar-uma-ia-inteligencia-artificial/
- https://tecnoblog.net/263808/o-que-e-inteligencia-artificial/
IDE
Conceito
- IDE, ou Ambiente Integral de Desenvolvimento em tradução livre, é um software criado com a finalidade de facilitar a vida dos programadores. Neste tipo de aplicação estão todas as funções necessárias para o desenvolvimento desde programas de computador a aplicativos mobile, assim como alguns recursos que diminuem a ocorrência de erros nas linhas de código. Se no passado os desenvolvedores precisavam apenas de um editor de texto e de um navegador para criar um software, agora, com os IDEs, eles possuem mais opções para otimizar o tempo gasto com os códigos. Imagine os IDEs como as calculadoras. Logicamente você aprende a fazer as operações matemáticas na escola, mas raramente as faz manualmente quando precisa.
Vantagens
- Possibilita verificação de erros
- Diminui gastos
- Diminui tempo de produção
- Aumenta desempenho
- Aumenta produtividade
- Mais opções para otimizar o tempo gasto com os códigos
Desvantagens
- A desvantagem fica por conta de necessitar um conhecimento razoável de programação. Usuários com pouca experiência – ou que estão dando os primeiros passos no desenvolvimento de software – podem se confundir com o excesso de recursos que alguns IDEs têm. Porém, isso não se mostra um grande problema.
Referências Bibliográficas
Integração Contínua
- Conceito
- Integração contínua (continuous integration) é um termo originado na metodologia ágil XP que refere a uma prática de desenvolvimento de software de DevOps para que os desenvolvedores, com frequência, juntem suas alterações de código em um Servidor central, que visa tornar a integração de código mais eficiente, através de builds e testes automatizados.
- Para que?
- 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, que consequentemente poderia havia muito acumulo de erros sem correção por um longo período, logo objetivo principal é de facilitar e agilizar as junções dos código. Utilizando a integração contínua é possivel verificar se as alterações ou novas funcionalidades não criaram novos defeitos no projeto já existente assim podendo lançar atualizações para atender as demandas dos usuários com maior frequência.
- Controle de versão
- Como parte crucial no processo de desenvolvimento e, para o sucesso da integração contínua, o controle de versão deve ser utilizado. Sendo que um dos objetivos do controle de versão é o trabalho colaborativo, em que diversos desenvolvedores trabalham em conjunto e compartilhando dados.
- O sistema de controle de versão resolve um grande problema quando trabalhamos em equipe:
- como compartilhar as informações de forma a ter a última versão válida e ainda saber quem fez as alterações;
- como prevenir que os desenvolvedores refaçam o trabalho já desenvolvido, etc.
- Para solucionar estes problemas, existe um conjunto de ferramentas para controle de versão centralizado, entre elas temos o CVS, Subversion, Git, entre outros. Estas ferramentas permitem aos desenvolvedores trabalharem em conjunto, possuindo um Servidor central responsável pelo versionamento do sistema e possibilitando que vários clientes possam acessar, visualizar, modificar e enviar novos códigos se for necessário.
- Ferramentas para Integração contínua
- As ferramentas de integração contínua permite que seja configurado o seu sistema, o ambiente de desenvolvimento (exemplo: jdk), permite que seja configurado o sistema de build automatizado como o ant, integrar com o repositório de controle de versão, e permite ainda o envio de e-mails de notificação. Isto é importante, pois como o sistema é automatizado, caso ocorram erros, o desenvolvedor pode ser notificado que a integração gerou falhas, para poder ser analisada. Existem diversas ferramentas, entre elas o, Hudson, Jenkins, Travis, Cruise Control entre outros.
- Fontes de pesquisa
Inteligência Cognitiva
- Como entender?
- As informações manipuladas pelos seres humanos podem existir através de ideias ou valores. É por causa da inteligência cognitiva que conseguimos discernir as relações entre os dados concretos e abstratos da nossa mente, por exemplo.
- A cognição se trata da aquisição de conhecimento através da “percepção, atenção, associação, memória, raciocínio, juízo, imaginação, pensamento e linguagem”. E o estudo do pensamento cognitivo visa ajustar o ser humano para que possa raciocinar agregando todos estes aspectos.
- Desta forma, o aprendizado é contínuo e sempre em sintonia com as mudanças ao redor, permitindo com que cada pessoa possa evoluir, acompanhando seu entorno. Existem duas formas de atividade para a inteligência cognitiva: a criativa e a reprodutiva. Na primeira, criamos condições e situações nas quais a experiência é inexistente.
- Já na segunda acontece um processo de identificação e reprodução das condições e situações já estabelecidas por um ambiente anterior. O interessante é que não existe uma época errada para desenvolver a inteligência cognitiva. Ela pode receber atenção em qualquer momento da vida, desde a infância até a velhice. De fato, ela acontece até de maneira natural.
- Na primeira infância, por exemplo, quem se perguntar o que é inteligência cognitiva vai identificá-la no processo natural de aprendizagem da fala, do andar e de outros aspectos naturais da vida humana.
- Nos seres humanos, a inteligência cognitiva vem sendo uma área do conhecimento explorada de forma contundente, a muito tempo. O aprimoramento das habilidades cognitivas de um ser humano permite a ele agregar diversos conhecimentos, de diferentes áreas, para executar uma função. Algo que as máquinas até então não eram capazes de aprender.

- Como funciona a inteligência cognitiva na tecnologia?
- Quando falamos de inteligência cognitiva na tecnologia, estamos inevitavelmente nos referindo à inteligência artificial. Mas, como ela funciona?
A inteligência cognitiva na tecnologia é capaz de aprender com base em dados uma das matérias-primas inovação, aplicando modelos estatísticos para entender padrões de ocorrências ao longo de determinado período.
- Um sistema cognitivo competente ainda pode gerar um raciocínio acessando enormes quantidades de dados, imitando a maneira como o cérebro humano funciona.
- O desenvolvimento da inteligência artificial diz respeito também a uma maior compreensão acerca da inteligência cognitiva para as máquinas. Hoje, existem diferentes tipos de softwares capazes de atuar nas áreas de economia, saúde, finanças, entretenimento e varejo, por exemplo.
Internet
- O que é Internet?
- A internet é o conjunto de redes de computadores e outros dispositivos que, espalhados por todas as regiões do planeta, conseguem trocar dados e mensagens utilizando um protocolo comum. Este protocolo compartilhado pela internet é capaz de unir vários usuários particulares, entidades de pesquisa, órgãos culturais, institutos militares, bibliotecas e empresas de todos os tipos em um mesmo acesso.
- Como ela funciona?
- Quando conectamos um computador a outro, ou quando ligamos vários computadores uns aos outros, criamos uma rede local. Mas desta forma, os computadores só se comunicam uns com os outros, sem acesso a outros computadores fora da sua casa ou empresa, sem acesso a outros servidores, como é possível quando há acesso à Internet.
- Este acesso externo ocorre quando a sua rede local se conecta a uma outra rede maior - no caso, o seu provedor de Internet - por meio da tecnologia TCP/IP, um modo de comunicação baseado no endereço de IP (Internet Protocol). Este IP é o endereço de cada um dos pontos de uma rede, e cada ponto da rede consiste em um computador que, por sua vez, se interliga a outros computadores, formando uma verdadeira “teia de redes”.
- Meios de conexão:
- Conexão Dial-up: É um tipo de conexão por linha comutada ou dial up, no qual é necessária a utilização de um modem e de uma linha telefônica para se conectar a um dos nós de uma rede de computadores do provedor de Internet
- A banda larga (em cabos coaxiais, fibras ópticas ou cabos metálicos): O termo banda larga pode apresentar diferentes significados em diferentes contextos. define –se banda larga como a capacidade de transmissão que é superior àquela da primária do ISDN a 1.5 ou 2 Megabits por segundo.
- Wi-fi: O padrão Wi-Fi opera em faixas de frequências que não necessitam de licença para instalação e/ou operação.
- Satélites: Internet via satélite é um método de acesso à Internet que, na teoria, pode ser oferecido em qualquer parte do planeta. Possibilita altas taxas de transferências de dados
- Telefones celulares : As tecnologias presentes em celulares permitem às operadoras da rede oferecerem aos seus usuários uma ampla gama dos mais avançados serviços, já que possuem uma capacidade de rede maior por causa de uma melhora na eficiência espectral.
- Sua impotância para a sociedade:
- Atualmente a Internet é o mais usado meio de comunicação, pois a partir dela surgem outros meios como aplicativos de mensagens e ligações. A cada dia que passa mais ela esta presente nos diversos setores existentes, como o comercial facilitando a comunicação entre vendedor/cliente.No campo educacional , é nela onde se encontra várias informações que ajudam o desenvolver dos estudantes . Ou seja , quase todos os setores envolvem seu uso sendo a principal ferramenta mundial.
- Referências bibliográficas:
IoT
- Conceito
O conceito de IoT (Internet of Things) ou em português Internet das Coisas, pode ser definido como uma enorme rede de dispositivos conectados. Sensores são embutidos nesses dispositivos, que engloba diversos objetos do dia-a-dia, como geladeira, máquina de lavar, termostato, alarme de incêndio, sistema de som, lâmpadas, entre outros, afim de coletar dados e tomar decisões baseadas nesses dados em uma rede.
A ideia é que essa conectividade torne a vida mais confortável, produtiva e prática. Nesse sentido, uma geladeira com internet pode avisar quando um alimento está perto de acabar e, ao mesmo tempo, pesquisar na web quais mercados oferecem os melhores preços para aquele item. A geladeira também poderia pesquisar e exibir receitas para você.
- Importância e uso real
A Internet das Coisas é mais do que apenas uma conveniência para os consumidores. Ela oferece novas fontes de dados e modelos de operação de negócios que podem aumentar a produtividade de diversas indústrias.
Alguns exemplos:
- Saúde: pode ajudar no monitoramento de atividades físicas, sono e outros hábitos – e esses itens estão apenas arranhando a superfície do quanto a IoT pode impactar a área da saúde. Aparelhos de monitoramento de batimentos cardíacos ou pressão sanguínea, registros eletrônicos e outros acessórios inteligentes podem ajudar a salvar vidas.
- Agropecuária: sensores espalhados em plantações podem dar informações bastante precisas sobre temperatura, umidade do solo, probabilidade de chuvas, velocidade do vento e outras informações essenciais para o bom rendimento do plantio.
- Manufatura: uma das indústrias que mais se beneficiam da Internet das Coisas. Sensores embutidos em equipamentos industriais ou prateleiras de armazéns podem comunicar problemas ou rastrear recursos em tempo real, aumentando a eficiência do trabalho e reduzindo custos.
Em geral, se um objeto é um eletrônico, ele tem potencial para ser integrado à Internet das Coisas. Assim, não é difícil de perceber por que esse assusto tem sido tão comentado atualmente.
De forma a ilustrar melhor o impacto da IoT, vamos usar um exemplo do nosso dia-a-dia. Vamos dizer, por exemplo, que você tem uma reunião de manhã cedo; seu despertador, conectado com o seu calendário, te acorda na hora certa. As luzes do seu quarto se acendem, a cortina abre automaticamente. Antes disso, sua cafeteira já começou a fazer o café, e a torradeira começa a esquentar o seu pão. Quando você entra no carro, a sua música favorita começa a tocar. Seu carro também pode ter acesso ao seu calendário e contatos, e automaticamente saberá a melhor rota a ser tomada para atingir seu destino. Se estiver muito trânsito, seu carro enviará uma mensagem aos envolvidos, notificando eles de seu possível atraso.
Dentro do carro, você poderá ir lendo ou dormindo mais um pouco, pois ele também faz parta da Internet das Coisas, e como um veículo autônomo, pode dirigir sozinho de forma segura, comunicando-se com outros carros e com a infraestrutura da cidade.
Quando os objetos passam a antecipar as nossas necessidades, as tarefas rotineiras do dia-a-dia serão otimizadas.
- Possíveis riscos:
A maior preocupação é em relação à segurança e privacidade dos sensores usados em IoT e dos dados que eles armazenam. E mais do que isso, a integração de dispositivos para transferir todos os dados críticos também apresenta problemas.
Segundo o The CommLaw Group, entre junho e novembro de 2016, mais de 100 milhões de dispositivos relacionados à Internet das Coisas foram afetados por malwares em todo o mundo. Não se trata apenas de perder dados ou de tê-los comprometidos, mas de que essas pessoas acessem áreas fundamentais para a companhia, afetando serviços como até mesmo a energia elétrica. Os ataques de hackers têm um custo alto para boa parte das empresas: estima-se algo em torno de US$ 280 bilhões ao ano.
A indústria precisa, portanto, definir e seguir critérios que garantam disponibilidade dos serviços (incluindo aqui a rápida recuperação em casos de falhas ou ataques), proteção de comunicações (que, nas aplicações corporativas, deve incluir protocolos rígidos e processos de auditoria), definição de normas para privacidade, confidencialidade de dados (ninguém pode ter acesso a dados sem a devida autorização), integridade (assegurar que os dados não serão indevidamente modificados), entre outros.
- Referências bibliográficas:
IP
- O que é?
IP é uma sigla para Internet Protocol, ou Protocolo de Internet. O endereço de IP é uma sequência numérica que indica o local de onde um determinado equipamento (normalmente um computador) está conectado a uma rede privada, diretamente à Internet, ou o endereço do servidor pelo qual o dispositivo está se conectando à internet.
Toda a internet é baseada em endereços IP, e cada participante da rede mundial de computadores tem um endereço IP. Até mesmo sites tem endereços IP, ou seja, o lugar de onde estão vindo os dados daquele site específico.
Em uma mesma rede, jamais podem existir 2 dispositivos com o mesmo endereço IP. O endereço IP deve ser único de forma a distinguir entre quaisquer equipamentos de uma mesma rede. É uma forma de garantir também a segurança de todos.
- Como Funciona?
Para que seja encontrado, o seu computador precisa ter um endereço único. O mesmo vale para qualquer site, como o SourceInnovation: este fica hospedado em um servidor, que por sua vez precisa ter um endereço para ser localizado na internet. Isso é feito via endereço IP (IP Address), recurso também utilizado para redes locais, como a rede Wi-Fi da sua casa: o seu roteador atribui um IP a cada dispositivo conectado a ele.
O endereço IP é uma sequência de números composta por 32 bits. Esse valor consiste em um conjunto de quatro sequências de 8 bits. Cada uma é separada por um ponto e recebe o nome de octeto ou simplesmente byte, pois um byte é formado por 8 bits. O número 172.31.110.10 é um exemplo.
A divisão de um IP em quatro partes facilita a organização da rede, da mesma forma que a divisão do seu endereço em cidade, bairro, CEP, número, etc, torna possível a organização das casas da região onde você mora.
- Referências
IPSec
- Conceito
- Protocolo de Segurança IP (IPsec) é uma extensão do protocolo IP que visa a ser o método padrão para o fornecimento de privacidade do usuário (aumentando a confiabilidade das informações fornecidas pelo usuário para uma localidade da internet, como bancos), integridade dos dados (garantindo que o conteúdo que chegou ao seu destino seja o mesmo da origem) e autenticidade das informações ou prevenção de identity spoofing (garantia de que uma pessoa é quem diz ser), quando se transferem informações através de redes IP pela internet.O IPSec pode ser definido como uma plataforma formada por um conjunto de protocolos que fornecem os seguintes serviços de segurança:
- Controle de acesso;
- Integridade dos dados (pacotes);
- Autenticação do host origem;
- Privacidade nos dados (pacotes);
- Privacidade no fluxo dos dados (pacotes);
- Reenvio de pacotes;
- Protocolo de Segurança IP (IPsec) é uma extensão do protocolo IP que visa a ser o método padrão para o fornecimento de privacidade do usuário (aumentando a confiabilidade das informações fornecidas pelo usuário para uma localidade da internet, como bancos), integridade dos dados (garantindo que o conteúdo que chegou ao seu destino seja o mesmo da origem) e autenticidade das informações ou prevenção de identity spoofing (garantia de que uma pessoa é quem diz ser), quando se transferem informações através de redes IP pela internet.O IPSec pode ser definido como uma plataforma formada por um conjunto de protocolos que fornecem os seguintes serviços de segurança:
- Funcionamento
- O IPSec trabalha em dois modos, modo de Transporte e modo Túnel:
- Modo Transporte:
- No modo de Transporte, apenas o segmento da camada de transporte á processado, isto é, autenticado e criptografado. Este modo é aplicável para implementações em servidores e gateways, protegendo camadas superiores de protocolos, além de cabeçalhos IP selecionados. O cabeçalho AH é inserido após o cabeçalho IP e antes do protocolo de camada superior (TCP, UDP, ICMP), ou antes de outros cabeçalhos que o IPSec tenha inserido. Os endereços de IP de origem e destinos ainda estão abertos para modificação, caso os pacotes sejam interceptados.
- Modo Transporte:
- O IPSec trabalha em dois modos, modo de Transporte e modo Túnel:
- Modo Tunel:
- No modo Túnel todo o pacote IP é autenticado ou criptografado, ficando apenas o cabeçalho IP externos (como o último endereço de destino e origem) visível, informando o destino do gateway (roteador, firewall, etc), permanecendo todo o conteúdo interno criptografado.Este método pode ser usado para evitar a análise de tráfego. Devido ao fato de o cabeçalho IP conter o endereço de destino e possivelmente as diretivas de roteamento e informação proveniente da opção hop-by-hop, não é possível simplesmente transmitir o pacote IP criptografado utilizando prefixo de cabeçalho ESP, pois roteadores intermediários seriam incapazes de processar tal pacote.Desta forma, é necessário encapsular o bloco inteiro (cabeçalho ESP mais pacote IP criptografado) com um novo cabeçalho IP que deverá conter informações suficientes para roteamento, mas não para análise de tráfego. Enquanto o modo de transporte é adequado para proteger conexões entre estações que suportam o modo ESP o modo túnel é útil numa configuração que inclua um firewall ou outro tipo de gateway de segurança que protege uma rede confiável das redes externas. No segundo caso, a criptografia acorre apenas entre uma estação externa e o gateway de segurança, ou entre dois gateways de segurança. Isto libera as estações da rede interna do processamento de criptografia e também simplifica a tarefa de distribuição de chaves pela redução do número de chaves necessárias. Além disso, inibe a análise de tráfego baseada no destino final.
- Modo Tunel:
- Vantagens
- Teremos uma grande proteção ataques feitos à uma rede, seja privada ou não. Obtem-se com ele uma interessante política de proteção à captura de dados. O IPSec não é de complexa configuração.Utilizamos sistemas de criptografia e protocolos de segurança, que são os grandes diferencias e que torna o IPSec tão atrativo quando falamos em uma conexão segura.Apenas os Hosts destino e origem deve “conversar” IPSec, todos os hops da rede apenas encaminharão o pacote IP ao seu destino.
- Bibliografia
Linguagens de Programação
Linguagem de programação, como fiz o nome, é uma linguagem usada para programar. Mas o que isso quer dizer? Quer dizer que, é uma maneira da qual nós humanos conseguimos "conversar" com dispositivos, podendo ser computadores ou até mesmo uma televisão. Esta conversa ocorre por meio de uma série de instruções e regras, que são usados para gerar softwares; tais softwares são quem fazem o intermédio desta conversa entre os programadores e os hardwares, as peças dos dispositivos.
Assim como ocorre no mundo, existem diversas linguagens de programação, dentre elas existem os tipos de linguagens:
- Programação estruturada: Uma forma de programar baseada em uma tríade: sequência, decisão e repetição. Exemplo de linguagem: Haskell.
- Programação Modular: No desenvolvimento das rotinas de programação, tal ação é feita por meio de módulos. Exemplo de linguagem: Modula-2
- Programação orientada a objetos: Programação, que seu principal paradigma é a orientação a objeto. Atualmente, 90% das linguagens tem suporte a este recurso.

- As linguagens também são classificadas em níveis (alto ou baixo). Existem aquelas em que a sintaxe se aproxima a uma linguagem humana, por isso entram na categoria das linguagens de alto nível. E também, existem as linguagens que possuem sintaxe e semântica próximas ao código de máquina, portando, classificadas como linguagens de baixo nível.
- Exemplo de linguagem de baixo nível: Assembly
- Exemplo de linguagem de alto nível: C
- Aqui segue uma tabela que mostra o TOP 20 linguagens de programação no mês de abril de 2019, comparado com o mesmo mês do ano de 2018, segundo o Tiobe Index.
- Logo abaixo, um TOP 10 das linguagens que mais se destacaram nos respectivos anos.
- Referências:
- https://www.tiobe.com/tiobe-index/
- SEBESTA, Robert W. Conceitos de Linguagens de Programação - 11.ed. [S. l.]: Bookman Editora, 2018. Disponível em: book.google.com.br. Acesso em: 15 abr. 2019.
- https://universidadedatecnologia.com.br/o-que-e-linguagem-de-programacao/
Machine Learning
- O que é?
- Uma ramificação da área de Inteligência Artificial, enquanto essa se baseia em “imitar” atitudes humanas, a Machine Learning em si, como o nome sugere, é o procedimento em que a máquina realmente aprende, por meio de análise de dados e identificação de padrões, a tomar decisões teoricamente conscientes, com o mínimo possível de intervenção humana.
- Desde muito tempo atrás, os computadores não eram capazes de realizar nada mais, nada menos do que o que fora programado para fazer, mas por que tratar as máquinas somente como máquinas? Logo no começo de tal estudo, pesquisadores focados em IA demandaram tempo e trabalho submetendo testes de reconhecimento de padrões, visando saber se os computadores realmente poderiam aprender – independentemente – quando expostos a novos dados.
- Por quê?
- É socialmente aceito o fato de que acertar 60% das vezes alguma suposição é considerado um sucesso. Mas se podemos prever como as pessoas agirão, não deveríamos sempre acertar? Ou seja, não estamos fazendo algo de forma errada?
- Ensinando as máquinas a agirem por si só, contaremos com o apoio de alguém cuja capacidade e paciência de aprender podem se sobressair a qualquer outro sujeito já visto na história. A cada dia estamos mais perto de atingir algum resultado realmente satisfatório, diminuindo a porcentagem de erros pouco a pouco, fazendo com que 60% nunca mais seja sinônimo de sucesso.
- Como a máquina aprende?
- Já previamente citado acima, o processo de aprendizagem de uma máquina se baseia na análise de massivas quantidades de dados, principalmente nos resultados anteriormente obtidos em testes. Testes esses que são gerados pelos softwares, que constroem previsões de aplicação, mesmo sem alterar seu código fonte.

- Como desenvolver uma aplicação de Machine Learning?
- Coletar dados
- Você pode coletar dados procurando manualmente por websites ou livros, pegar informações de alguma API, possuir um sistema previamente programado para procurar e enviar tais dados para você, o leque de possibilidades é imenso.
- Preparar os dados de entrada
- Não basta só obter os dados necessários, é preciso também fazer com que os mesmos passem a possuir um formato utilizável, que ajude você a construir e manusear de forma prática o algoritmo.
- Analisar os dados de entrada
- Tendo como objeto os dados da tarefa anterior, é necessário analisar os dados, em busca de qualquer padrão óbvio, se esse existir – como, por exemplo, um conjunto de dados específico que difere muito do resto.
- É cabível, também, separar o objeto a ser analisado em diferentes camadas (ou dimensões), para facilitação da análise. Entretanto, na maioria das vezes você vai se deparar com bem mais do que três características a serem divididas, tornando difícil fazer uma análise precisa de primeira.
- Para ajudar, nesses casos, podem ser usados métodos avançados que filtram múltiplas dimensões, a fim de diminuí-las para um número confortável para ser analisado.
- Treinar o algoritmo
- Nesse passo realmente a Machine Learning começa a tomar conta. Você alimenta o algoritmo com dados e extrai informação ou conhecimento. É necessário que você armazene tal conhecimento de uma forma legível para a máquina usar nos próximos passos.
- Testar o algoritmo
- Agora a informação obtida e armazenada no último passo será utilizada. Ao testar e avaliar o algoritmo, você verá o quão bem ele faz o que fora proposto pra fazer. Se for uma “supervised learning” (aprendizagem supervisionada), você pode colocar valores e casos que conhece para serem testados, e se for uma “unsupervised learning” (aprendizagem não supervisionada), você terá de usar outros métodos para obter o sucesso.
- Usar o algoritmo
- Aqui, após revisar todos os passos, você realmente possui um programa com uma determinada função.
- Coletar dados
- Por que Python?
- Para realmente construir um sistema que utilize Machine Learning, é necessária a utilização de alguma linguagem de programação popular, de fácil entendimento e com um grupo ativo de desenvolvimento. Tendo isso em vista, Python está no topo ao analisar tais exigências como um todo.
- Python possui uma sintaxe muito simples, além de ser bem acessível para qualquer tipo de pessoa, pois oferece também um enorme leque de possibilidades, podendo ser utilizada para programação procedural, orientada a objeto, funcional e etc.
- A linguagem conta também com um número imensurável de bibliotecas – de fácil localização e instalação também –, além da fácil e intuitiva manipulação de texto.
- O que difere Python das demais populares linguagens? Exemplos como Java e C são bem-vindos: ambas contam com um grande número de linhas de código para qualquer tipo de problema, desde a declaração de variáveis até a saída de dados. Python é concisa e fácil, tanto para ler quanto codificar, o que a torna bem mais acolhedora, até mesmo para quem nunca programou na vida.
- Por que Python?

- Exemplos
- Carros autônomos
- Recomendações de sites como a Amazon ou aplicações como o Spotify
- Análise de cotações da Bolsa

- Referências bibliográficas
- Conceito e exemplos
- Conceito, importância e processos de desenvolvimento
- Livro Machine Learning in Action, de Peter Harrington (Caps. 1.1; 1.5; 1.6)
- Imagens usadas
- adelaide.edu.au
- bleepingcomputer.com
- startupi.com.br
- news.allaboutjazz.com
Memória RAM
- Conceito
- Memória de Acesso Aleatório ou RAM, é o hardware físico dentro de um computador que armazena dados temporariamente, servindo como a memória "de trabalho" do computador.
- Adicionar mais RAM permite que um computador trabalhe com mais informações ao mesmo tempo, o que geralmente tem um efeito considerável no desempenho total do sistema.
- Seu computador usa RAM para carregar dados porque é muito mais rápido do que executar os mesmos dados diretamente de um disco rígido.
- Funcionamento
- Pense na RAM como uma mesa de escritório. Uma mesa é usada para acesso rápido a documentos importantes, ferramentas de escrita e outros itens de que você precisa no momento . Sem uma escrivaninha, você manteria tudo armazenado em gavetas e armários, significando que levaria muito mais tempo para realizar suas tarefas diárias, já que você teria que constantemente entrar nesses compartimentos de armazenamento para obter o que precisa, e depois gastar mais tempo colocando afastados.
- Da mesma forma, todos os dados que você está usando ativamente em seu computador (ou smartphone, tablet , etc.) são armazenados temporariamente na RAM. Esse tipo de memória, como uma mesa na analogia, fornece tempos de leitura / gravação muito mais rápidos do que o uso de um disco rígido. A maioria dos discos rígidos é consideravelmente mais lenta que a RAM devido a limitações físicas, como velocidade de rotação.
- Ao contrário de um disco rígido, que pode ser desligado e ligado novamente sem perder seus dados, o conteúdo da RAM é sempre apagado quando o computador é desligado. É por isso que nenhum dos seus programas ou arquivos ainda estão abertos quando você liga o computador novamente.
- RAM no seu computador
- Um módulo padrão ou gravador de memória de mesa é um hardware longo e fino que se parece com uma régua curta. A parte inferior do módulo de memória possui um ou mais entalhes para orientar a instalação adequada e é revestida com vários conectores, geralmente banhados a ouro.
- A memória está instalada nos slots do módulo de memória localizados na placa-mãe . Esses slots são fáceis de encontrar - basta olhar para as pequenas dobradiças que prendem a RAM no lugar, localizadas em ambos os lados do slot de tamanho similar na placa-mãe.

- Referências bibliográficas:
Modelo Orientado a Serviço
- Arquitetura Orientada a Serviço é um modelo de planejamento de estratégia da área de tecnologia da informação, alinhando diretamente aos objetivos de negócios de
uma organização que permite expor as funcionalidades os aplicativos em serviços padronizados e inter-relacionados. Essa arquitetura tem como objetivo integrar as aplicações, disponibilizar maior flexibilidade para mudanças, suportar serviços independentes de plataforma e protocolos.
- Serviço são módulos de negócios ou funcionalidades que possuem interfaces expostas que são invocadas via mensagens, estas que disponibilizam recursos sem que
a implementação do serviço seja conhecida.
• Um serviço pode assumir dois papéis em uma arquitetura orientada a serviços: – Servidor/Provedor • Prestador de um serviço. • Possui interface publicada com a descrição dos serviços prestados. – Cliente/Consumidor • Solicita (consome) serviços de um provedor.
- SOA trata os requisitos de baixo acoplamento, desenvolvimento baseado em padrões, computação distribuída independentemente de protocolo, integração de aplicação e sistemas legados, seu componente mais importante é o ESB ( Barramento de Serviço Corporativos), não implementa a arquitetura, mas oferece as funcionalidades para implementá-las. Seu maior foco é a construção e disponibilização de serviços de negócio, evitar replicação de dados, reuso e facilidade de manutenção de sistemas, integração entre sistemas, visão e controle do processo de negócio, agilidade na mudanças.
Vantagens
Tem como vantagem o reuso de serviços, aumentando produtividade, alinhamento com negócios, melhorias para corporação e facilidade na gerencia da tecnologia da informação, focando em melhorias continuas e automatizando os processos, disponibilizando qualidade de informações trafegadas na empresa.
Abaixo são listadas algumas vantagens que ela pode trazer para o negócio.
- Reutilização: O serviço pode ser reutilizado para outras aplicações.
- Produtividade: Com o reuso, a equipe de desenvolvimento pode reutilizar serviços em outros projetos, diminuindo o tempo de desenvolvimento.
- Flexibilidade: Isolando a estrutura de um serviço as mudanças são feitas com maior facilidade.
- Manutenibilidade: Com baixo acoplamento, facilita a manutenção dos serviços.
- Alinhamento com o negócio: A área de negócio visualiza os processos alinhados com a tecnologia.
- Interoperabilidade: Disponibilizar serviços independentemente da plataforma e tecnologia.
- Integração: A integração com outros serviços, aplicativos e sistemas legados.
- Governança: Gerenciamento nos processamentos de negócio.
- Padronizado: É baseado no uso de padrões.
- Abstração: Serviço totalmente abstraído da sua implementação.
- Desvantagens
Sua desvantagem é a questão de segurança. Pois, ela depende da implantação de normas, não é utilizada em aplicações com frande transferência de dados, altos acoplamentos e aplicações que precisam manter estado.
A seguir são listadas algumas desvantagens.
- Siga os padrões de mercado: WS-I, WS-BPEL, WSDL, UDDI, SOAP.
- Use ESB (Enterprise Service Bus): É um mecanismo arquitetural para comunicação corporativa que possibilita a integração de sistemas.
- Siga os princípios de SOA: Fraco acoplamento, contrato de interfaces, serviços reutilizáveis, não manter estado entre chamadas.
- Use nomes de negócio para os serviços: Os consumidores dos serviços não sabem o que acontece dentro dos serviços, então os nomes dos serviços devem usar terminologias e vocabulário para tornar seu significado intuitivo.
- Estabeleça padrõe[[Arquivo:s de nomenclatura: Facilita na leitura e o significado dos serviços.
- Seja cético na candidatura de serviços: Nem tudo precisa ser um serviço. Explore sistemas que já existem para procurar candidatos a serviços, verificar o valor para o negócio e não para a TI.
- Otimize mensagens SOAP: O conteúdo do SOAP é XML. Trafegar grandes informações pode ser um problema, devido à quantidade de tags em torno dos dados. Procure um mecanismo mais eficiente de serialização de XML.
- Crie serviços que tenham operações atômicas: O serviço não deve se preocupar com dados de outros serviços, serviços devem funcionar sem transação e estornos de dados.
- Construa seus serviços iterativamente: Não tente criar tudo em um serviço ao mesmo tempo, comece com uma área ou grupo de processos que traga valor agregado no negócio.
- Contrate uma consultoria: Não tente implantar SOA sem ajuda externa, é um estilo arquitetural difícil de aplicar.
- Os desafios de fornecer aplicações baseadas em SOA está em identificar os problemas que podem acontecer e ter um plano para resolvê-los sem ter impactos na implementação. Para que seja bem sucedida, precisa de uma arquitetura de referência bem estruturada e planejada, precisam de pessoas que lideram a abordagem orientada [[a serviço.
SOA é considerado como chave para melhorar a eficiência de TI, mais para implementar o negócio, é preciso ter muito mais do que apenas conhecimento técnico, e sim fornecer serviços com mais segurança e conscientização das pessoas que estão envolvidas no processo.
- Segue baixo alguns modelos:
* Referências bibliográficas:
https://www.devmedia.com.br/vantagens-e-desvantagens-de-soa/27437
https://www.treinaweb.com.br/blog/voce-sabe-o-que-e-arquitetura-orientada-a-servicos-soa/
https://www.profissionaisti.com.br/2017/05/soa-principios-de-projetos-orientados-a-servico/
https://www.youtube.com/watch?v=vo-MYUsuFms
Normalização (BD)
NoSQL
- Conceito
- NoSQL é uma categoria de banco de dados caracterizado por atender aos requisitos de gerenciamento de grandes volumes de dados, semi-estruturados ou não estruturados, que necessitam de alta disponibilidade e escalabilidade.
- Contexto
- O movimento denominado NoSQL ( Not only SQL) surgiu devido o fato de que a manipulação e processamento de grande quantidade de dados no contexto Big Data vem a ser um dos grandes desafios atualmente na área de Computação, haja vista que a quantidade de dados gerada diariamente em vários domínios de aplicação como, por exemplo, da Web, rede sociais, redes de sensores, dados de sensoriamento, entre diversos outros, estão na ordem de algumas dezenas, ou centenas, de Terabytes. Assim sendo, essa imensa quantidade de dados gerados traz novos grandes desafios na forma de manipulação, armazenamento e processamento de consultas em várias áreas de computação, e em especial na área de bases de dados, mineração de dados e recuperação de informação. Nesse contexto, os Sistemas Gerenciadores de Bases de Dados (SGBD) tradicionais não são os mais adequados, ou “completos”, às necessidades do domínio do problema de Big Data, como por exemplo: execução de consultas com baixa latência, tratamento de grandes volumes de dados, escalabilidade elástica horizontal, suporte a modelos flexíveis de armazenamento de dados, e suporte simples a replicação e distribuição dos dados.
- Tipos de ferramentas do NoSQL
- Baseado em Coluna (Column Stores): Hbase, Cassandra, Hypertable, Accumulo e Amazon SimpleB.
- Baseado em Documentos (Document Stores): MongoDB, CouchDB e BigCouch.
- Baseado em Grafos (Graph-Based Stores): Infinite Graph, Sones e HyperGraphDB.
- Baseado em Chave-Valor (Key-Value Stores): Dynamo, Azure Table Storage,Couchbase Serve, Riak e Redis.
- Exemplos de empresas que utilizam algumas dessas ferramentas dessa categoria de bancos de dados:
- Twitter;
- Facebook;
- Google;
- Amazon.
- Características
- Escalabilidade horizontal;
- Ausência de esquema ou esquema flexível;
- Suporte nativo a replicação;
- API simples para acesso aos dados;
- Consistência eventual;
- Consistência eventual.
- Referências bibliográficas
Open Source
Open Source
Periféricos
Plataformas
- Conceito
- É definido como um ambiente no qual o usuário contrata para as aplicações variadas estarem alocadas. Aplicações estas como gerenciamento de aplicações, de dados e de diversos serviços por meio da internet.
- Funcionalidade
- Este dá aos desenvolvedores as ferramentas necessárias para criar e hospedar aplicativos Web. Desenvolvida com o intuito de proporcionar aos usuários o acesso aos componentes necessários para desenvolver e operar rapidamente aplicativos Web ou móveis na Internet, sem se preocupar com a configuração ou gerenciamento da infraestrutura subjacente dos servidores, armazenamento, redes e bancos de dados.
- Diferentes tipos de Nuvens/Plataforma
- Com a existência de diversos tipos de plataformas que disponibilizam estes serviços, houve a criação de nuvem de funcionamento e conceitos diferentes.
- Assim como
- Nuvem Privada: refere-se aos serviços de computação em nuvem oferecidos pela Internet ou por uma rede interna privada somente a usuários selecionados e não ao público geral, a computação em nuvem privada proporciona às empresas muitos dos benefícios de uma nuvem pública, incluindo autoatendimento, escalabilidade e elasticidade, com customização e controle adicional disponíveis de recursos dedicados em uma infraestrutura de computação hospedada localmente.
- Nuvem Publica: É uma série de serviços de computação oferecidos por terceiros à Internet pública. Eles podem ser gratuitos ou vendidos sob demanda, permitindo que os clientes paguem apenas pelo seu consumo de ciclos de CPU, armazenamento ou largura de banda.
- Nuvem Hibrida: É um ambiente de computação em que se é combinado a nuvem publica com a nuvem privada, compartilhando os dados e aplicações contidas em ambas. As organizações ganham a flexibilidade e o poder computacional da nuvem pública para tarefas de computação básicas, mantendo aplicativos e dados essenciais para os negócios no local, com segurança atrás do firewall de uma empresa.
- Assim como
- Com a existência de diversos tipos de plataformas que disponibilizam estes serviços, houve a criação de nuvem de funcionamento e conceitos diferentes.
- Plataformas mais conhecidas
- Amazon Web Services (AWS): presente em 21 países, a AWS é atualmente uma das mais famosas do ramo, por apresentar diversos serviços na área de machine learning, internet das coisas, aplicativos empresariais, robótica, serviços de multimídia, etc.

- Google Cloud Plataform (GCP): presente em 18 países, o GCP além de oferecer vários serviços semelhantes ao AWS ele aposta em seu diferencial de alta segurança, baixa latência e maior capacidade de resposta, além de preços consideravelmente menores dos que oferecido pelos concorrentes.

- Microsoft Azure: presente 54 países, a Azure oferece os mesmos diversos tipos de serviços contidos em ambas as plataformas citadas anteriormente, contudo o tipo de nuvem o qual ela oferece é a hibrida, e que possui a melhor qualidade do mercado. Sua segurança e tecnologia são tão avançados que 95% das 500 maiores empresas dos EUA a utilizam para negócios.
- Referências Bibliográficas
Portas
- Conceito:
- Portas, na computação, são um conjunto de 16 bits conhecido como port number, adicionado a um endereço de IP, e são um meio de comunicação na rede.
- Enquanto a utilidade de um endereço de IP é a de identificar um computador em uma rede, a porta identifica uma aplicação em um computador.
- São divididas em dois principais protocolos de transporte: Transmission Control Protocol (TCP) e User Datagram Protocol (UDP).
- Protocolos TCP e UDP:
- TCP:
- Considerado o protocolo de rede mais importante devido ao fato de formar o modelo TCP/IP que compõe toda a internet. É o mais utilizado atualmente, pois suas características permitem uma maior flexibilidade de usabilidade, sendo as principais características:
- Retornar uma resposta de sucesso quando todos os segmentos foram transferidos corretamente;
- Agrupar segmentos fora de ordem;
- Controlar fluxo;
- Manter conexões lógicas;
- Realizar transferências simultâneas em ambas as direções.
- Considerado o protocolo de rede mais importante devido ao fato de formar o modelo TCP/IP que compõe toda a internet. É o mais utilizado atualmente, pois suas características permitem uma maior flexibilidade de usabilidade, sendo as principais características:
- UDP:
- O UDP é considerado um protocolo menos confiável e mais simples, devido ao fato de não manter conexões. O funcionamento do User Datagram Protocol é de apenas enviar dados, sem receber nenhuma confirmação da recepção ou possibilitar transferências simultâneas.
- Seu uso pode parecer inútil inicialmente, porém há casos onde o fato da possibilidade de perda de dados será utilizado positivamente, como em streaming de vídeos, onde uma instabilidade se usado o pacote TCP causaria congelamento de imagens, já com UDP manteria rodando, apenas com a merda de alguma qualidade.
- O UDP é considerado um protocolo menos confiável e mais simples, devido ao fato de não manter conexões. O funcionamento do User Datagram Protocol é de apenas enviar dados, sem receber nenhuma confirmação da recepção ou possibilitar transferências simultâneas.
- Ambos os pacotes podem ser analisados e recusados por um firewall, que tem como principal funcionalidade analisar os pacotes recebidos e controlar o fluxo desses dados através de regras.
- TCP:
- TCP/IP:
- Também chamado de pilha de protocolos TCP pois é um conjunto de protocolos divididos em quatro camadas, que garantem a integridade do pacote na rede, sendo elas:
- Camada de Aplicação:
- Utilizada para iniciar o envio e receber informações na rede.
- Camada de Transporte:
- Recebe os dados da camada acima, verifica a integridade e divide em pacotes.
- Camada de Rede:
- Anexa os pacotes a um endereço de IP do remetente e do destinatário.
- Camada de Interface:
- Finalizar o envio de pacotes pela rede.
- Camada de Aplicação:
- Também chamado de pilha de protocolos TCP pois é um conjunto de protocolos divididos em quatro camadas, que garantem a integridade do pacote na rede, sendo elas:
- Veja a seguir como funciona o envio de um pacote em uma transmissão TCP/IP:
- Estação: SYN (solicita a abertura da conexão)
- Servidor: SYN (confirma o recebimento e avisa que a porta está disponível)
- Servidor: ACK (inicia a conexão)
- Estação: ACK (confirma)
- Estação: DATA (é enviado o pacote com a mensagem de texto)
- Servidor: OK (a confirmação, depois de verificar a integridade do pacote)
- Estação: FYN (solicita o fechamento da conexão)
- Servidor: FYN (confirma)
- Estação: FYN (confirma que recebeu a confirmação)
- Principais portas padrões:
- APLICAÇÃO: PORTA
- HTTP: 80 (WEB)
- HTTPS: 8080 (SSH WEB)
- FTP: 21 (File Transfer Protocol)
- DNS: 53 (Domain Name Server)
- MySQL: 3306 (Banco de dados)
- Exemplos de aplicações rodando em portas:

Primeiramente, é necessário liberar as portas nas configurações de seu roteador e firewall
Netcat rodando na porta 9999 pelo bash do linux.

Servidor aberto com nodejs.
- Referências bibliográficas:
- Protocolo e serviços de rede - Prof. Renan Osório Rios
- Firewall Patterns - Markus Schumacher
- Hardware - www.hardware.com.br
Processadores
Protocolos
RA
- O que é?
Realidade Aumentada (RA) se baseia na integração de elementos virtuais à percepção da realidade, se trata de uma composição dos sentidos. Ela é responsável por complementar o mundo real, em oposição à Realidade Virtual (RV) que o substitui, buscando trazer objetos digitais ao mundo real a fim de trazer ao usuário maior imersão e interatividade. Conceitualmente, RA pode complementar todos os sentidos humanos, porém a tecnologia mais comumente utilizada provê componentes primariamente visuais e sonoros.
- Funcionamento
Segundo um dos precursores da ideia de RA, Ronald Azuma, é um sistema com três princípios:
- Combinar elementos virtuais ao mundo real.
- Processar essas informações em tempo real.
- Conceber qualquer ambiente em três dimensões.
- Aplicações
Provavelmente a aplicação mais conhecida em todo o mundo é o jogo mobile Pokémon Go, seguido dos famosos filtros de fotos nas redes sociais, porém as utilidades dessa tecnologia são extremamente amplos já que, nos dias atuais, praticamente todos possuem smartphones que são capazes de operar essa tecnologia. Exemplos de uso:
- Oficinas/Indústrias: na integração de sensores do maquinário diretamente com o próprio maquinário, gerando um objeto em destaque.
- Militar: HUD para pilotos de caça, que mostram as informações dos sensores do avião (inclinação, velocidade, uso dos motores, radar, etc.)
- Reuniões: Interatividade com informações discutidas através de objetos e gráficos virtuais.
- Prototipagem de produtos: visualizar o movimento de peças móveis, simular peças adicionais, etc.
- Organização de espaço: projetar previamente objetos, como móveis em um cômodo, antes de colocá-los de fato.
- Compra de produtos: Projeta algum produto de algum catálogo
- Dispositivos
- Smartphones (utiliza primariamente a câmera)
- Eyetap
- Google Glass (projeto/produto descontinuado)
- Basicamente, um conjunto sensores (câmera, acelerômetro, entre outros) e uma forma de mostrar essas informações (tela).
Raspberry
Redes de Computadores
Redes Neurais
Conceito Redes Neurais Artificiais são técnicas computacionais que apresentam um modelo matemático inspirado na estrutura neural de organismos inteligentes e que adquirem conhecimento através da experiência. Uma grande rede neural artificial pode ter centenas ou milhares de unidades de processamento. Na sua forma mais geral, uma rede neural é uma máquina que é projetada para modelar a maneira como o cérebro realiza uma tarefa particular ou função de interesse, a rede é normalmente implementada utilizando-se componentes eletrônicos ou simulada por programação em um computador digital.
Funcionamento Uma rede neural artificial é composta por várias unidades de processamento. Essas unidades, geralmente são conectadas por canais de comunicação que estão associados a determinado peso. As unidades fazem operações apenas sobre seus dados locais, que são entradas recebidas pelas suas conexões. O comportamento inteligente de uma Rede Neural Artificial vem das interações entre as unidades de processamento da rede. A operação de uma unidade de processamento pode ser resumida da seguinte maneira:
- Sinais são apresentados à entrada;
- Cada sinal é multiplicado por um número, ou peso, que indica a sua influência na saída da unidade;
- É feita a soma ponderada dos sinais que produz um nível de atividade;
- Se este nível de atividade exceder um certo limite a unidade produz uma determinada resposta de saída.
Benefícios
Com a capacidade de processamento de informações tornam possível para as redes neurais resolver problemas complexos (de grande escala) que são muitas vezes intratáveis. Entretanto, devido a alta capacidade dessas redes, elas podem também ser usadas para vários outros tipos de problemas ou atividades.
Exemplos de uso
- Detecção de fraude em cartões de crédito.
- Reconhecimento de caracteres e de voz, também conhecido como processamento de linguagem natural.
- Diagnósticos médicos.
- Marketing direcionado.
- Predições financeiras de ações de mercado.
- Visão computacional para interpretar fotos e vídeos não-tratados (por exemplo, na obtenção de imagens médicas, robótica e reconhecimento facial).
- Criação de arte como, músicas, pinturas, escrita.
Bibliografia
http://conteudo.icmc.usp.br/pessoas/andre/research/neural/
Livro: Redes neurais princípios e pratica. 2ªEdição. Simon Haykin.
RFId
- O que é?
- Identificação por radiofrequência ou RFID (do inglês “Radio-Frequency IDentification”) é um método de identificação automática através de sinais de rádio, recuperando e armazenando dados remotamente através de dispositivos denominados etiquetas RFID. Utiliza transponders (os quais podem ser apenas lidos ou lidos e escritos) nos produtos, como uma alternativa aos códigos de barras, de modo a permitir a identificação do produto de alguma distância do scanner ou independente, fora de posicionamento. Viabiliza a comunicação de dados através de etiquetas com chips ou transponders que transmitem a informação a partir da passagem por um campo de indução. (ex: muito usado em pedágio “sem parar”).
- A Identificação por Radiofrequência (RFID) foi desenvolvida para substituir a leitura por código de barras convencional.A leitura através de código de barras necessita da aproximação do leitor sobre o código, com ângulo exato e tempo de interpretação do mesmo. Basicamente é o mesmo utilizado nos supermercados e lojas diversas.A tecnologia de leitura por RFID utiliza de uma comunicação de curto alcance que pode ser lido automaticamente por sensores na passagem do objeto portador da etiqueta RF. A mesma tarefa com mais eficiência, menos tempo e maior precisão.
- Como funciona?
- Um sistema de RFID é composto, basicamente, de uma antena, um transceptor, que faz a leitura do sinal e transfere a informação para um dispositivo leitor, e também um transponder ou etiqueta de RF (rádio frequência), que deverá conter o circuito e a informação a ser transmitida. Estas etiquetas podem estar presentes em pessoas, animais, produtos, embalagens, enfim, em equipamentos diversos.Assim, a antena transmite a informação, emitindo o sinal do circuito integrado para transmitir suas informações para o leitor, que por sua vez converte as ondas de rádio do RFID para informações digitais. Agora, depois de convertidas, elas poderão ser lidas e compreendidas por um computador para então ter seus dados analisados.
- Etiquetas RFID
- Passiva – Estas etiquetas utilizam a rádio frequência do leitor para transmitir o seu sinal e normalmente têm com suas informações gravadas permanentemente quando são fabricadas. Contudo, algumas destas etiquetas são “regraváveis”.
- Ativa – As etiquetas ativas são muito mais sofisticadas e caras e contam com uma bateria própria para transmitir seu sinal sobre uma distância razoável, além de permitir armazenamento em memória RAM capaz de guardar até 32 KB.
- Quais são as vantagens da RFID?
- Permite o rastreamento de itens;
- Controla as mercadorias em estoque;
- Possibilita o monitoramento de ambientes;
- Auxilia o funcionamento de sistemas antifurto;
- Realiza o controle de acesso em locais restritos;
- Contribui para sistemas de prevenção a falsificação.
- Aplicações
- Controle de Passagem: A tecnologia de controle de passagem pode ser usada tanto em postos de pedágio e estacionamento, como em controle de produtos em esteiras. Basta o objeto atravessar um sensor que capta sua identificação e de acordo com a demanda aciona (via programação) as ações necessárias.
- Controle de Estoque: Essa tecnologia já é utilizada em empresas médio e grande porte, principalmente quando se trata de grandes estoques de produtos, onde o controle deve ser atualizado rapidamente. Se o produto possui uma etiqueta RFID, com sensores nas prateleiras e/ou sessões do estoque, facilmente será identificado quando houver entrada e saída de estoque.
- Rastreamento: O uso de RFID para rastreamento já é utilizado por empresas que precisam de controle e logística de caminhões em seus pátios. Por exemplo, um caminhão quando faz carga e descarga, passa por várias etapas dentro de uma empresa, quando implantada uma etiqueta RF em seu pára-brisa, o caminhão passa pelos leitores e disponibiliza sua localização para o controle, possibilitando ao controlador saber se o próximo caminhão já pode ir para a pesagem. Outra forma de rastreamento que está sendo utilizada é para inibir assaltos a cargas, as empresas implantam o sistema de RFID nas cargas para facilitar a sua localização.
- Identificação: A tendência é que RFID sejam utilizados também para identificação biométrica, com a etiqueta RF em passaportes, documentos de identidade. Assim o detalhamento e as informações do indivíduo podem ser mais precisas, dispensando o uso de vários documentos. Essa tecnologia também está sendo estudada para ser utilizada em humanos, eliminando a documentação impressa, porém há muita controvérsia a respeito disto, pelo fato de controle governamental e privado sobre a população.
- Controle de Acesso: Hoje a Insoft4 já utiliza da tecnologia em seu sistema de controle de acesso de pessoas, através dos crachás de identificação por aproximação (Mifare) e o controle de acesso de veículos, no qual a etiqueta tag é instalada no veículo autorizado, que ao se aproximar do portão é reconhecido pelo leitor que aciona a cancela de forma automática, liberando a sua passagem. Funciona de forma semelhante ao sistema utilizado em pedágios (o Sem Parar).
- Obstáculos ao uso da RFID
- Baterias de baixo rendimento: Outro problema é a vida útil de uma bateria para etiquetas ativas de RFID, que ainda é muito curta, o que geraria um certo transtorno ao invés de comodidade, pois ela precisaria ser reposta em pouco tempo. Além disso, isso impede também o desenvolvimento de processos mais elaborados utilizando a RFID, o que demandaria ainda mais energia de seus dispositivos.
- Preço: Apesar de esta tecnologia vir se consolidando ao longo dos anos, ainda existem vários empecilhos para sua implantação em larga escala.Talvez o principal dele seja o preço, afinal para usá-lo serão necessários vários outros equipamentos e isso, para produtos de baixo custo (e baixo retorno financeiro), acaba não sendo a melhor alternativa.
- Segurança: Além disso, existe também o problema com a segurança, pois ainda não foi desenvolvido nenhum sistema à prova de interceptações. Mesmo as etiquetas passivas, que possuem alcance de apenas alguns metros, ainda se encontram vulneráveis a leituras indevidas de dados, o que pode causar vários danos.Pensando em uma situação em que você carregue seus dados como senhas de cartões, números de documentos e tudo mais, em um dispositivo presente em sua roupa, em seu celular ou em sua mão, a possibilidade de roubo de informações torna-se ainda maior e mais perigosa.Contra isso alguns estudos vêm sendo realizados e sistemas de criptografia de dados, implementação de códigos e também dispositivos metálicos como “embalagem” das etiquetas têm sido apontados como itens para garantir a segurança e a privacidade do RFID.
- Referências bibliográficas
- https://www.canalti.com.br/redes-de-computadores/rfid-o-que-e-como-funciona-utilizacao/
- https://www.tecmundo.com.br/tendencias/2601-como-funciona-a-rfid-.htm
- https://www.bloglogistica.com.br/tecnologia/tecnologia-rfid-o-que-e-e-como-se-aplica-na-area-logistica/
- http://insoft4aps.com.br/noticia/O-que-e-RFID-e-para-que-serve
Roteador
SaaS
Scrum
Sensores
Sistema embarcado
- Introdução
Sistemas embarcados revolucionam o mundo continuamente melhorando a vida das pessoas. Basta olhar ao redor e perceber que eles estão em quase todos os lugares e que suas aplicações impulsionaram o desenvolvimento tecnológico de todas as áreas de conhecimento humano. Mas o que um sistema embarcado consegue fazer?
Um sistema embarcado salva vidas em marcapassos, garante a segurança dos transportes em computadores aviônicos e freios ABS, também aproxima as pessoas através de satélites e equipamentos de telecom, agrega conforto ao dia a dia com impressoras, TVs e players de mídia, e, ainda deixa a nossa vida mais divertida com os consoles de games. Sistema embarcado também é aplicado em sistemas de rede elétrica, em sistemas bélicos, em reatores nucleares, enfim, eles estão presentes em quase todos os eletrônicos.
- O que é ?
O sistema embarcado, também chamado de sistema embutido, é um sistema microprocessado em que um computador está anexado ao sistema que ele controla. Um sistema embarcado pode realizar um conjunto de tarefas que foram predefinidas. O sistema é usado para tarefas específicas, e assim, através de engenharia é possível otimizar um determinado produto e diminuir o tamanho, bem como os recursos computacionais e o seu valor final. 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.
- Aplicações
Os sistemas embarcados estão por toda a nossa volta, e por essa razão, não nos damos conta de sua capacidade computacional, já que estamos tão envolvidos com tais mecanismos. Sistemas embarcados operam em máquinas que podem trabalhar por vários anos sem parar, e que ainda, em alguns casos, possuem a capacidade de autocorreção. Um excelente exemplo de itens que usam sistemas embarcados são os famosos smartphones, que desempenham funções específicas, e que contam com mecanismos mais limitados que os computadores. Confira baixo uma lista com alguns exemplos que recebem a aplicação de sistemas embarcados: • Urna eletrônica;
• Videogames;
• Calculadoras;
• Impressoras;
• Alguns eletrodomésticos;
• Aparelhos celulares;
• Equipamentos hospitalares;
• Em veículos;
• Roteadores.
- Fontes:
https://www.embarcados.com.br/sistema-embarcado/
https://www.oficinadanet.com.br/post/13538-o-que-sao-sistemas-embarcados
SO
Speech Recognition
- "O que é?"
- Trata-se de uma tecnologia que possibilita que dispositivos respondam a ditados e/ou comandos de voz.
- "Como funciona"
- Para que um sistema possa interpretar a fala humana, deve haver, com o auxílio de um microfone, a tradução das vibrações da voz de uma pessoa em sinais elétricos em forma de ondas. Esse sinal, então, é convertido pelo hardware do sistema -- e.g., a placa de áudio de um computador -- em um sinal digital, o qual será avalizado pelo programa de reconhecimento de voz para isolar os fonemas, que são os blocos básicos da constituição da fala. Os fonemas são, em seguida, recombinados em palavras. No entanto, como há várias palavras homófonas, o programa precisa analisar o contexto para identificar a palavra correta. Nesse caso, os programas costumam estabelecer o contexto por meio de análises de trigramas, ou seja, a partir de uma base de dados contendo grupos frequentes de três palavras, considerando as probabilidades de duas palavras serem seguidas por uma terceira palavra. Por exemplo, se uma pessoa fala, em inglês, "who am", a próxima palavra será, considerando a probabilidade do contexto, o pronome "I", e não a palavra "eye", muito embora se trate de um caso de homofonia. Mesmo assim, em alguns casos é necessária intervenção humana para a correção de erros.
- Sistemas mais recentes têm apostado em aprendizagem profunda ("deep learning"), sobretudo em redes neurais, para ganhar flexibilidade em relação a essas regras de probabilidade. Um exemplo, é a Google Google Cloud Speech-to-Text, que converte áudio em texto aplicando modelos de redes neurais avançados em uma API que reconhece mais de 120 idiomas e variantes.
- Programas que reconhecem algumas palavras isoladas, como os sistemas de navegação por voz dos celulares, geralmente funcionam para quase todo tipo de usuário. No entanto, em se tratando de fala contínua, como em casos de ditados, deve haver um treinamento do programa para reconhecer os padrões de fala de cada indivíduo, geralmente a partir da leitura em voz alta de alguns espécimes de texto.
- Os principais obstáculos para a qualidade de um sistema de reconhecimento de voz são as linguísticas, individuais e de canal. A variabilidade linguística se refere aos efeitos da fonética, fonologia, sintaxe, semântica e discurso na fala. A variabilidade individual refere-se às variações entre indivíduos e até mesmo em um único indivíduo, sobretudo no que diz respeito aos efeitos da coarticulação, i.e., efeitos dos sons vizinhos na realização acústica de um fonemas devido à continuidade e restrições motoras sobre o aparelho articulatório humano. Por sua vez, a variabilidade de canal se refere aos efeitos dos sons de fundo e do canal de transmissão (e.g., telefone, microfone). Todas essas variabilidades tendem a prejudicar a mensagem intencionada com algum grau de incerteza, a qual precisa ser superada pelo processo d reconhecimento.
- "Aplicações"
- O reconhecimento de voz permite o controle, sem as mãos, de diversos dispositivos e equipamentos, o que é fundamental para pessoas com deficiências; fornece entrada para tradução automática; e viabiliza ditado de texto. Dentre as primeiras aplicações de reconhecimento de voz, citam-se os sistemas telefônicos e os softwares de ditado para fins médicas. Essa tecnologia é comumente utilizada para ditados, buscas em bancos de dados e comandos a sistemas computacionais, especialmente em profissões ou áreas que se baseiam em termos especializados. Além disso, funciona como assistente pessoal em veículos e smartphones, como é o caso da Siri, da Apple.
- "Referências"
- GOOGLE. Cloud Speech-to-text. Disponível em: https://cloud.google.com/speech-to-text/?&utm_source=google&utm_medium=cpc&utm_campaign=latam-BR-all-pt-dr-skws-all-all-trial-b-dr-1003997-LUAC0009046&utm_content=text-ad-none-none-DEV_c-CRE_331159561915-ADGP_SKWS+%7C+Multi+~+Developers+%7C+Speech-Recognition-KWID_43700042069969651-kwd-321478451406-userloc_1001590&utm_term=KW_%2Bspeech%20%2Brecognition-ST_%2BSpeech+%2BRecognition&gclid=Cj0KCQjwh6XmBRDRARIsAKNInDEOONe7Ed_CiPKBdw5fshFxMEYu_sULakI3J3WkYZ7DDD0fT0nRDWEaAvm3EALw_wcB&gclsrc=aw.ds. Acesso em: 1 maio 2019.
- MAKHOUL, J.; SCHWARTZ, R. State of the art in continuous speech recognition. Proc Natl Acad Sci U S A, v. 92, n. 22, p. 9956-9963, 1995.
- TOLEDANO, D. T.; FERNÁNDEZ-GALLEGO, M. P.; LOZANO-DIEZ, A. Multi-resolution speech analysis for automatic speech recognition using deep neural networks: Experiments on TIMIT. PLoS ONE, v. 13, n. 10, p. e0205355, 2018.
- ZWASS, V. Speech recognition. In: Britannica Academic. Disponível em: https://academic-eb-britannica.ez34.periodicos.capes.gov.br/levels/collegiate/article/speech-recognition/126497. Acesso em: 1 maio 2019.
SQL
- Conceito
É uma linguagem que surgiu na década de 70, e significa "Structured Query Linguage" em português "Linguagem de Consulta Estruturada" , usada para se comunicar com o banco de dados, com o foco ao modelo relacional.
- Pra que serve?
Como sendo uma linguagem padrão para o gerenciamento de banco de dados, suas instruções são usadas para executar tarefas como criar, deletar, consultar e atualizar o banco de dados, além de inserir dados e manipula-los.
- Como funciona?
Após a criação do banco de dados, os dados serão armazenados em campos dentro de tabelas para organização, imagine que você esta guardando pastas(campos) dentro de gavetas(tabelas) em uma cômoda(banco de dados), ao criar cada tabela você precisa definir quantos campos terão e o tipo de dado que cada campo irá guardar, além de estabelecer uma chave primária que representará a tabela, e/ou uma chave secundária para se relacionar com outras tabelas. Os principais comandos para manipulação de dados são: Create, Delete, Select, Update, usados para criar, deletar, consultar e atualizar campos e tabelas.
- Referência bibliográficas
UML
- O que é UML - Unified Modeling Language ?
- A Linguagem de modelagem unificada (UML) foi criada para estabelecer uma linguagem de modelagem visual comum, semanticamente e sintaticamente rica, para arquitetura, design e implementação de sistemas de software complexos, tanto estruturalmente quanto para comportamentos. Além do desenvolvimento de software, a UML tem aplicações em fluxos do processo na fabricação.
- A UML não é uma linguagem de programação, mas existem ferramentas que podem ser usadas para gerar código em várias linguagens por meio de diagramas UML. Tem uma relação direta com a análise e o design orientados a objetos. É uma combinação de várias notações orientadas a objetos: design orientado a objetos, técnica de modelagem de objetos e engenharia de software orientada a objetos. Representa as melhores práticas para desenvolver e documentar aspectos diferentes da modelagem de software e sistemas de negócios.
- Conceitos de Modelagem
- O desenvolvimento de sistemas centra-se em três modelos gerais e diferentes do sistema:
- Funcional: são diagramas de caso de uso, e descrevem a funcionalidade do sistema a partir do ponto de vista do usuário.
- Objeto: são diagramas de classes, e descrevem a estrutura do sistema em termos de objetos, atributos, associações e operações.
- Dinâmico: diagramas de interação, diagramas de máquinas de estados e diagramas de atividade, e são usados para descrever o comportamento interno do sistema.
- O desenvolvimento de sistemas centra-se em três modelos gerais e diferentes do sistema:
- Conceitos orientados a objetos
- Os objetos em UML são entidades do mundo real que existem ao nosso redor.
- Alguns conceitos fundamentais de um mundo orientado a objetos são :
- Objetos: Representam uma entidade e um componente básico essencial.
- Classe: Modelo de um objeto.
- Abstração: Comportamento de uma entidade do mundo real.
- Encapsulamento: Mecanismo de vincular os dados e escondê-los do mundo exterior.
- Herança: Mecanismo de criar novas classes a partir de uma existente.
- Polimorfismo: Define o mecanismo em diferentes formas.
- Tipos de Diagramas UML
- Usa-se diferentes elementos associando-os de maneiras diferentes formando diagramas que representam aspectos estruturais de um sistema, além de diagramas comportamentais que registram os aspectos dinâmicos de um sistema.
- Diagramas estruturais:
- Diagrama de classes: É o diagrama UML mais usado, e a principal base de qualquer solução orientada a objetos. Classes dentro de um sistema, atributos e operações, e a relação entre cada classe. Classes são agrupadas para criar diagramas de classes quando há uma diagramação de grandes sistemas.
- Diagrama de componentes: Exibe a relação estrutural de elementos do sistema de software, na maioria das vezes utilizado quando se trabalha com sistemas complexos com múltiplos componentes. Componentes se comunicam por meio de interfaces.
- Diagrama de estrutura composta: Diagramas de estrutura composta são utilizados para mostrar a estrutura interna de uma classe.
- Diagrama de implementação: Ilustra o hardware do sistema e seu software. É útil quando uma solução de software é implantada em diversas máquinas com configurações únicas.
- Diagrama de objetos: Mostra a relação entre objetos usando exemplos do mundo real e retrata um sistema em um determinado momento. Como os dados estão disponíveis dentro de objetos, eles podem ser utilizados para esclarecer as relações entre objetos.
- Diagrama de pacotes: Existem dois tipos especiais de dependências definidas entre pacotes: a importação do pacote e a mesclagem do pacote. Para revelar a arquitetura, os pacotes representam os diferentes níveis de um sistema. Dependências de pacotes podem ser marcadas para mostrar o mecanismo de comunicação entre os níveis.
- Diagramas comportamentais:
- Diagramas de atividade: Fluxos de trabalho de negócios ou operacionais representados graficamente para exibir a atividade de qualquer parte ou componente do sistema. Diagramas de atividade são usados como alternativa aos diagramas de máquina de estados.
- Diagrama de máquina de estados: Semelhante a diagramas de atividade, eles descrevem o comportamento de objetos que se comportam de maneiras diferentes em seu estado atual.
- Diagrama de caso de uso: Representa uma determinada funcionalidade de um sistema, e foi criado para ilustrar a forma como as funcionalidades se relacionam e seus controladores internos e externos (atores).
- Diagrama de integração:
- Diagrama de sequência: Mostra como objetos interagem entre si, e a ordem de ocorrência. Representam interações para um determinado cenário.
- Diagrama da visão geral da interação: Há sete tipos de diagramas de interação, e este diagrama exibe a sequência em que eles atuam.
- Diagrama de tempo: Assim como os diagramas de sequência, representa o comportamento de objetos em um determinado período de tempo. Se houver um único objeto, o diagrama é simples. Se houver mais de um objeto, as interações dos objetos são exibidas durante este período de tempo determinado.
- Diagrama de comunicação: Semelhante a diagramas de sequência, no entanto foca mensagens transmitidas entre objetos. A mesma informação pode ser representada usando um diagrama de sequência e outros objetos.
- Diagramas estruturais:

- Usa-se diferentes elementos associando-os de maneiras diferentes formando diagramas que representam aspectos estruturais de um sistema, além de diagramas comportamentais que registram os aspectos dinâmicos de um sistema.
- Referencias
- https://books.google.com.br/books?hl=pt-BR&lr=&id=elvjBwAAQBAJ&oi=fnd&pg=PT4&dq=UML&ots=xUTnPNrVyC&sig=eZHvzL-UyGTJTZLNFSF_uqFuPM8#v=onepage&q=UML&f=false
- https://www.uml.org/what-is-uml.htm
- https://books.google.com.br/books?hl=pt-BR&lr=&id=ddWqxcDKGF8C&oi=fnd&pg=PR13&dq=UML&ots=feAMpf8NPP&sig=INxlV5T1Rd0shXRc9wvpBtMqj_U#v=onepage&q=UML&f=false
- https://books.google.com.br/books?hl=pt-BR&lr=&id=xxoXcuh0oS0C&oi=fnd&pg=PR8&dq=UML&ots=ut3N9ClP9x&sig=rRZz50MynVyeg9cwebVffE7RBs8#v=onepage&q=UML&f=false
















