Métodos de comunicação Arduino e servidores de aplicação

O que é um Arduino?

O Arduino é uma placa de prototipagem eletrônica que pode ser usada para desenvolver projetos de automação residencial, como desligar automaticamente as luzes, ajustar a temperatura de um ar-condicionado e muito mais. O melhor de tudo é que essa tecnologia é de código aberto, o que significa que é acessível a qualquer pessoa.

Esse pequeno processador de computador montado em uma placa com diversos outros componentes que manipulam sua entrada e saída, torna mais fácil para você conectar tudo ao mundo virtual, esse será o tema mais abordado neste Artigo.

Como podemos ver na imagem abaixo, não temos componentes no Arduíno que forneçam uma rede ao usuário seja WI-FI ou via cabo. Podemos utilizar diversos componentes que cumprem essa função, inclusive outros microcontroladores que já possuem tal funcionalidade inserida no próprio hardware. Segue exemplos:

Arduino Uno R3

Ethernet Shield W5100

Esse módulo fornece acesso à rede nos protocolos UDP ou TCP, conectando o seu Arduino à Internet de forma fácil e rápida. Seu formato de Shield facilita a conexão com a placa Arduino Uno, Arduino Mega e com outras placas da família Arduino, sua configuração para acesso a internet é bem simples, bastando apenas conectar a placa à sua rede através de um cabo de rede RJ45, além de seguir algumas instruções de uso da biblioteca ethernet.

ESP8266 NodeMCU

O módulo Wifi ESP8266 NodeMCU é uma placa de desenvolvimento que combina o chip ESP8266, uma interface usb-serial e um regulador de tensão 3.3V. A programação pode ser feita usando LUA ou a IDE do Arduino, utilizando a comunicação via cabo micro-usb. Através do desenvolvimento e combinação desses dois hardwares conseguimos conectar nosso Arduino a qualquer servidor de aplicação, sendo compatível com arquivos do tipo JSON.

Partindo para uma integração mais completa, temos uma maneira de comunicar qualquer microcontrolador a servidores de aplicação de maneira mais eficiente e simples, porém com um custo mais elevado. Raspberry Pi 4, trata-se de um microcomputador com um processador muito mais veloz, saídas HDMI o que garante uma ótima resolução para displays e conectividades como  Wifi , Wireless, Bluetooth 5.0 e cabo Ethernet.

Raspberry Pi 4

A Raspberry Pi 4B inclui um alto-desempenho 64-bit processador quad-core e características dual-display suporte em resoluções de até 4K através de um par de micro-portas HDMI, hardware de decodificação de vídeo até 4 GB de RAM, dual-band 2.4/5.0 GHz wireless LAN, Bluetooth 5.0, Gigabit Ethernet, USB 3.0 e 2.0 entre outras características.

O que é um Webservice?

Para que diferentes sistemas, tanto Microcontroladores quanto qualquer outro programa ou solução para internet das coisas, ou até mesmo em ambientes empresariais e profissionais, possam trocar informações e consumir dados do mesmo servidor ou não, solicitando ou enviando informações, utilizamos um Webservice. Com os exemplos de conectar um Microcontrolador com a internet e demais módulos citados no tópico anterior, podemos ver a importância que um Servidor Web tem de gerenciar requisições, tráfego de atualização dos dados entre tantas outras tarefas.

Para compreendermos melhor qual sua função e a ligação com o tópico discutido anteriormente sobre Microcontroladores, iremos ter acesso a um exemplo que está ao alcance do conhecimento e tecnologia de todos, uma automação residencial via comando de voz utilizando a Amazon Alexa, baseada no Webservice da Amazon (aws.com), atuando juntamente com componentes como o Arduino.

Através do modelo MKR1010, podemos utilizar o próprio site do Arduino (IoT Cloud) para configurar e criar nossas “coisas” no menu Things. Criando os objetos e pareando com o dispositivo Arduino, irá gerar um código fonte de onde o Arduino irá disponibilizar um painel de controle online que permite já testar todas as funcionalidades da sua aplicação.

Ao selecionar o dispositivo que cadastramos, teremos acesso as variáveis a serem desenvolvidas, na aba Sketch irá ocorrer todo desenvolvimento do comportamento das nossas variáveis.

Pronto, a parte mais complicada do processo todo seria essa, agora já temos um painel online que irá receber/mandar requisições para nosso microcontrolador, podendo ser realizado testes e ajustes antes mesmo de realmente ver a solução como um todo.

Com esta etapa concluída, podemos partir para outra parte da integração que se trata do robô Alexa. No site aws.com podemos configurar Skills para solução que estamos criando.

 Arduino já possui algumas Skills e ajuda muito programadores nesses tipos de integrações, só instalar e sair utilizando-as.

Nas configurações dessas habilidades, a única coisa, que ainda temos de fazer, é criar o Account Linking que é responsável pela comunicação entre Arduino, Alexa e o Usuário que irá utilizar aplicação.

Com isso ao direcionar um comando de voz ao robô Alexa, nossa aplicação estará devidamente integrada e realizará as funções mediante as solicitações.

Autor: João Pedro Tisatto Salvador

Amazon SES: Entenda as vantagens e desvantagens de se usar

Email

No mundo atual, manter um contato contínuo com clientes e parceiros pode ser uma tarefa difícil, ainda mais para grandes empresas. Uma forma de realizar essa comunicação é utilizando e-mails. Porém, o monitoramento para que eles realmente cheguem a um destinatário pode ser difícil e até mesmo de alto custo. Assim, a utilização de um meio externo para realizar esse trabalho é uma ótima opção.

Como isso impacta o marketing da minha empresa?

O serviço em nuvem de e-mail da Amazon, o Amazon Simple Email Service (SES), é eficaz, flexível e dimensionáveis. Ele possui uma noção de Inbound Marketing, um conjunto de estratégias que se baseia na ideia de criação de conteúdo para um público específico. O conceito traz a ideia de uma comunicação direta com o cliente, criando, assim, um relacionamento duradouro como esse. Com essa ideia em mente, o serviço da Amazon possibilita que empresas apliquem o Inbound Marketing no seu cotidiano, através dos e-mails de comunicações transacionais, marketing ou de grande escala. Devido às suas opções flexíveis de implantação por IP e autenticação por e-mail, o Amazon SES torna-se confiável, sendo capaz de aumentar a capacidade de entrega e proteger a reputação do remetente.

Muitas empresas já se beneficiam do serviço da Amazon SES. Um grande exemplo é o aplicativo Duolingo, que disponibiliza o aprendizado de diversas línguas a milhões de usuários pelo mundo. Através do Amazon Simple Email Service, o aplicativo é capaz de enviar e-mails em grande escala para seus usuários, motivando-os a praticar diariamente.

Quanto custa?

Quando pensamos em Amazon sempre nos veem a cabeça valores justos e acessíveis, no caso do Amazon SES não iria ser diferente. Com um preço inicial de 0 USD para os primeiros 62.000 e-mails enviados a cada mês e 0,10 USD para cada 1.000 e-mails recebidos depois disso.

Uma fator interessante é a forma de contabilizar os email. Por exemplo, se você tiver 768 KB de e-mail recebidos, será contabilizado como três blocos de e-mail recebidos. Se você tiver 255 KB de e-mail recebidos, será contabilizado como zero blocos de e-mail recebidos.

Vantagens

Como a Duolingo, milhares de outras empresas podem usufruir dos benefícios desse serviço. Além da aplicação do Inbound Marketing, o Amazon SES oferece:

  • Rápida integração: A configuração de e-mails é feita em minutos e o serviço é compatível com o recebimento de e-mails, permitindo a interação com os clientes em grande escala.
  • Eficiência: É possível analisar a eficácia de alcance de cada email com estatística de envio, entregas de e-mail e devoluções.
  • Otimização da capacidade de entrega: É possível maximizar a capacidade de entrega através de um painel de reputação que conta com insights de performance e feedback antispam.
  • Dimensionamento seguro: As opções de autenticação do Amazon SES garantem o envio de e-mails seguros e com o nome de domínio do usuário.

Desvantagens

Além dos pontos positivos que o Amazon SES pode oferecer, há também certas questões que devem ser ponderadas:

  • O serviço de e-mail não é a solução mais intuitiva que há.
  • É um serviço um tanto quanto robusto, por assim dizer.
  • Pode ser complicado de apurar/decifrar mensagens de resposta.

O serviço de e-mail da Amazon é uma solução muito útil para empresas que procuram um engajamento em grande escala, de forma rápida e segura. O fato de ser um tanto quanto robusto, permite que seja incorporado ao software desejado, oferecendo maior flexibilidade.

Por Gustavo Gedoz Kozoroski
Artigo do Seminário de Engenharia de Software
Fonte Micreiros.com

Arquitetura Serverless: O que você precisa saber

logo serverless framework

Você já imaginou executar suas funções de backend sem possuir um servidor? A arquitetura serverless nos permite essa facilidade.

No entanto, como o nome da arquitetura sugere (serverless, do inglês, sem servidor), existe sim um servidor executando tais funções, ele somente não é gerenciado por você, mas pela plataforma cloud  no modelo FaaS (Function as a Service) que você irá utilizar, como por exemplo Amazon Web Services (AWS), Microsoft Azure, Google Cloud, entre outras. Com isso, evita-se a configuração de servidores complexos e/ou ambientes isolados como os containers.

Surgimento

A origem da hospedagem de recursos de computação em cloud não iniciaram a partir do serverless. Inicialmente, possuia-se três formas de aplicar serviços de computação em nuvem, sendo eles:

  • IasS (Infrastructure as a Service): Permite ao usuário selecionar um conjunto de recursos específicos para sua aplicação, e a partir disso, configurá-la de acordo com sua necessidade.
  • PaaS (Platform as a Service): Conta com os recursos da IaaS – servidores, armazenamento e rede – e acrescenta o acesso a ferramentas de gerenciamento da aplicação, como por exemplo, IDE’s, SGBD’s e middlewares.
  • SaaS (Software as a Service): Proporciona o acesso a um software completo dentro de um datacenter do provedor escolhido, incluindo a camada de apresentação da aplicação.

Todas essas estruturas possuem um valor mensal de acordo com o provedor de serviços, que nos garantem alta disponibilidade e segurança dos dados, tanto para os detentores da aplicação quanto para os usuários finais, além da escalabilidade.

Mas afinal, o que é serverless?

O serverless é uma arquitetura que utiliza como padrão o modelo FaaS, que consiste em executar funções como serviço, ou seja, as funções de nossos códigos são armazenadas na nuvem e executadas individualmente, sem necessidade de um datacenter privado executando sua camada de processamento de dados. No entanto, o serverless  não possuí somente o modelo de funções como serviço, existe também o modelo BaaS (Backend as a Service) como por exemplo o Google Firebase, que possibilita a criação da infraestrutura de dados e execução de códigos, comumente utilizados para autenticação de usuários de forma simples e segura. Além deste, temos o modelo CasS (Containers as a Service) que tem como objetivo a utilização de um container de baixo custo na nuvem, sem necessidade de um datacenter.

Como funciona e quanto custa?

Cada provedor possui seu próprio recurso de execução de códigos, como por exemplo, o AWS Lambda, o Google Cloud Functions ou o Azure Automation. Suas funções são hospedadas gratuitamente nos provedores de cloud, e o valor é variado de acordo com o número de execuções e/ou tempo de execução da função, o exemplo abaixo é disponibilizado pela AWS deixando mais evidente o calculo de custo.

calculo de custo aws lambda
Exemplo de cálculo para cobranças mensais (AWS)

Onde e como utilizar?

Tendo em vista a utilização do modelo FaaS, podemos utilizar o serverless como um facilitador para nossas aplicações, sendo recomendado para execução de funções assíncronas, ou seja, funções que podem ser executadas sem impedir a navegabilidade do usuário ou que consumam muito processamento de dados no servidor comum. Por exemplo, o envio de um e-mail, o upload de uma imagem ou a geração de um relatório. O serverless possui uma ótima sinergia com a estrutura de microsserviços, onde há facilidade ao mover uma funcionalidade específica para a arquitetura serverless. Um ponto a ser considerado, antes de começar a utilizar deste modelo, é se a função possui um objetivo bem definido e não causa um grande impacto na aplicação, pois estas funções são stateless, ou seja, não armazena seu estado. A cada execução a função será reconstruída do zero, sem considerar os dados já processados anteriormente.

Serverless framework

O framework Serverless é um framework web gratuito e de código aberto, escrito em Node.js o que facilita o desenvolvimento de funções como serviço. Serverless é o primeiro primeiro framework que foi originalmente desenvolvido para construir aplicações exclusivamente na AWS Lambda. Atualmente, aplicações desenvolvidas com o framework Serverless podem ser entregues e publicadas em outros provedores de funções como serviços, conforme consta no site do framework.

Vantagens

  • Não existe a necessidade de configuração de um servidor dedicado;
  • Os valores disponibilizados pelos provedores atuais são extremamente baratos;
  • Suas funções são auto escaláveis não importando o consumo;
  • A realização do deploy é muito simples, e existem ferramentas que automatizam isso.

Desvantagens

  • Ao possuir grande intervalo de tempo entre execuções podem ocasionar perda de performance;
  • O custo pode ficar muito alto caso suas funções demorem cerca de 300 segundos, sendo este o limite de tempo de execução.
  • Execução de testes e debug é extremamente difícil;
  • A utilização em conjunto com aplicações que possuem execuções constantes pode aumentar consideravelmente o custo.

Concluindo

O cenário atual de desenvolvimento está cada vez mais suscetível à mudança das arquiteturas tradicionais para serviços em cloud, sendo necessário uma série de adaptações de códigos. Com isso, fica visível a utilidade da arquitetura serverless, levando em conta a sua facilidade de implantação utilizando o Serverless framework.

Autor: Mateus Catel.

Links Relacionados

https://blog.rocketseat.com.br/serverless-nodejs-lambda/

https://www.riuni.unisul.br/bitstream/handle/12345/8450/TCC-FINAL-COM-ASSINATURAS.pdf

https://read.acloud.guru/six-months-of-serverless-lessons-learned-f6da86a73526

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

https://www.serverless.com/

https://aws.amazon.com/pt/lambda/

Armazenamento de Imagens para Aplicativos Móveis

O Armazenamento de diversas imagens em aplicativos é uma dúvida constante, na questão de aplicativos móveis esta preocupação aumenta, pois é inevitável que a utilização de uma outra ferramenta não inclusa no próprio dispositivo deverá ser utilizada. Os métodos com que o desenvolvedor se depara para a utilização do armazenamento são dois a utilização de um campo do tipo BLOB(Binary Large Object – grande objeto binário) ou de um campo no banco de dados que referencia o caminho da imagem e armazenando ela em um servidor, sendo está podendo ser feita de diversas formas, as mais mencionadas são a utilização de um servidor para o armazenamento de imagens ou a utilização de um serviço que já faça este controle um exemplo seria o Firebase Cloud Storage.

Armazenamento com BLOB

            A utilização do armazenamento no banco de dados com o tipo de arquivo BLOB não é muito recomendada, mas é uma opção viável para utilização em softwares que não necessitam de uma grande quantidade de armazenamento de imagens ou outros tipos de arquivos. Mas este tipo de armazenamento ainda possui alguns vantagens e desvantagens, que seriam:

Vantagens:

  • Organização: Todosos dados ficam centrados em apenas um local, fazendo com que a realização de backups seja feita de forma mais fácil, necessitando apenas armazenar os dados contidos no banco de dados.

Desvantagens:

  • Banco de Dados muito grande: Com o armazenamento feito diretamente no banco de dados à consequência de deixá-lo muito grande é inevitável se existe a necessidade de guardar diversos arquivos.
  • Lentidão: Sempre que for necessário consultar a imagem no banco de dados esta consulta deverá consultar uma grande quantidade de dados.

Armazenamento da referência do arquivo

            A utilização de referencias da imagem salva é uma ótima solução para quem possui uma necessidade de armazenamento maior. Com ela deve-se armazenar o caminho da imagem no banco de dados e ao mesmo tempo salva-la em algum local que possa ser acessível posteriormente, essa utilização pode ser feita de diversas formas e maneiras, dando uma liberdade maior para o desenvolvedor escolher qual seria a melhor solução para seu caso.

            Algumas vantagens e desvantagens são listadas para a sua utilização, mas cada uma dessas deve levar em consideração onde será armazenado o arquivo, vantagens e desvantagens do armazenamento em um servidor:

Vantagens:

  • Velocidade: A velocidade é uma das grandes vantagens deste tipo de armazenamento, isso se da em consequência que a sua consulta será redirecionada diretamente ao caminho no qual a imagem está armazenada.

Desvantagens:

  • Inconsistência: Qualquer modificação de local ou de exclusão feita diretamente no local no qual está armazenado as imagens é um fator de risco para a consistência com o banco de dados, pois o caminho pode estar apontando para um local no qual  a imagem pode não estar mais localizada.

Utilização de um serviço específico para armazenamento

            Hoje existem diversos serviços que disponibilizam o armazenamento de imagens e arquivos para aplicações. Alguns deles são totalmente de graça e outros sendo pagos conforme a utilização. Este tipo de armazenamento também possui suas vantagens e desvantagens, sendo elas:

Vantagens:

  • Organização: Os arquivos ficam armazenados em outro local que não interfere diretamente com o servidor e nem o banco de dados.
  • Segurança: Os arquivos ficam seguros por serem administrados apenas no local de armazenamento que seria a ferramenta exterior.
  • Velocidade: A velocidade aumenta por ser apenas armazenada uma URL no qual está armazenada a imagem, fazendo assim com que a consulta seja feita de uma forma mais rápida e direcionada.

Desvantagens

  • Dependência: Conforme a quantidade de dados armazenados vai crescendo a dependência com o serviço utilizado fica maior, tendo assim uma maior dificuldade de desvinculação com a solução utilizada.

Firebase Cloud Storage

            O Firebase é uma plataforma que foi adquirida pela Google e desde 2014 está a crescer com o tempo, possuindo diversos serviços para a utilização em aplicações móveis e para web.

O Cloud Storage do Firebase é um destes serviços dedicados ao armazenamento de arquivos, tendo funções de upload e download de arquivos, além destas funções primitivas ele ainda conta com um controle de perda de conexão e de acesso a arquivos. Em relação a perda de conexão na hora de upload ou download a operação pode ser retornada de onde parou, poupando tempo e largura de banda. Já o controle de acesso pode ser feito diretamente no Firebase, podendo ser definido quais usuários podem acessar quais arquivos.

Armazenamento de Imagens no Firebase

            O armazenamento das imagens e seu controle pode ser feito de duas formas, sendo uma delas diretamente no console de controle do Firebase, e a outra forma por meio da aplicação que utiliza os serviços do Firebase.

            O Cloud Storage permite que o usuário crie pastas para um melhor controle das informações, além disso ao ser feito o upload da imagem para o Storage ele retorna uma URL de acesso ao arquivo, se o arquivo for do tipo imagem ela pode ser acessada diretamente pelo navegador, podendo ser feita o download por este meio. Além disso o Storage possui uma área para o controle de tokens das imagens, podendo ser adicionados novos ou excluídos conforme a necessidade, fazendo com que o caminho da imagem seja alterado.

            Além das informações armazenadas o Firebase possui gráficos que mostram a usabilidade do Storage pela aplicação, podendo ser consultado a quantidade de Bytes e objetos armazenados, mostrando essas informações por datas de quando foram utilizados.

            Algumas considerações devem ser feitas ao começar a utilizar o Firebase como uma solução para armazenar as imagens de uma aplicação, uma delas é que o Storage tem um limitador de 5GB de armazenamentos gratuitos, depois que isso é ultrapassado o valor fica de US$ 0,026/GB, mas a cobrança só é feita por utilização, então enquanto a aplicação utilize até os limites nada será cobrado a mais independente do tempo de utilização.

            Depois de analisado e pesquisado sobre o assunto a forma que traz mais vantagens e que possui uma melhor integração com uma aplicação seria a utilização de serviços para armazenar imagens como o Firebase Cloud Storage.

Autor: Matheus Bernardi

Consumo de APIs IBM Watson

O consumo e desenvolvimento de serviços de cloud têm tornado cases de inovação cada vez mais presente no meio tecnológico. O Ibm Watson têm como objetivo salientar e prover serviços utilitários de cloud como API utilizando como viés, ferramentas cognitivas.

Bem como as demais plataformas que provém este tipo de serviço do mercado, o Ibm Watson promove facilidades de usabilidade quanto ao consumo de seus serviços.

ABORDAGENS DO IBM WATSON

Dentro das possibilidades de utilização do Whatson, podemos encontrar as seguintes ferramentas:

Natural language understanding (compreensão da linguagem natural):

Neste algoritmo disponibilizado, podemos extrair de um texto emoções, contextos, entidades e relações.

  • Personality Insights (Insights de personalidade) Identifica traços psicológicos de mídias tradicionais ou sociais que determinam decisões de compra, intenção e traços comportamentais; utilizado para melhorar as taxas de conversão.
  • Speech to Text (Fala em Texto) Utilizado para converter voz em texto.
  • Text to Speech (Texto para fala) Utilizado para converter texto em voz.
  • Visual Recognition (reconhecimento visual) extrai sentido de imagens. Aponta suas especificidades com base em uma fonte de cognição já ensinada. Salienta o sentido da imagem.
  • Watson Assistant (Assistente watson) ajuda na construção de uma interface de conversação. Utilizado geralmente em Chatboots.

Todas essas possibilidades de algoritmos e aplicabilidade estão disponíveis como serviço. Todas essas modalidades possuem categorias precificadas entregando mais funcionalidades conforme o plano de cobrança escolhido.

CONSUMINDO A API DO WATSON NA PRÁTICA

Como uma forma prática de disponibilizar os recursos da cloud da IBM, a empresa oferece duas maneiras de consumir seus algoritmos:

  • IBM Watson Studio: O IBM Watson Studio é uma maneira robusta e simples de desfrutar dos recursos da IBM Cloud. Com ele temos o poder de interagir com os recursos do Watson de uma maneira mais amigável sem contato com código. É possível também criar projetos e treinar modelos de dados para contemplar recursos de aprendizado de máquina.
Figura 1 – Exemplo de reconhecimento de imagem do IBM Watson

Consumo da API do Watson: Podemos também utilizar o Watson gerando uma chave de acesso para, juntamente com uma requisição HTTP, utilizar os recursos disponibilizados. Desta maneira, podemos ter um cenário de possibilidades mais abrangente e customizável. Para tal, neste artigo iremos utilizar uma biblioteca desenvolvida pela IBM na plataforma NodeJs.

UTILIZANDO API DO WATSON

Para fazer a utilização de qualquer recurso do watson programaticamente, como dito anteriormente, precisamos gerar uma chave de acesso do recurso que queremos utilizar. Vamos utilizar como exemplo o recurso de interpretação de linguagem natural. Essa chave pode ser gerada na página do recurso na ibm cloud.

Figura 2 – Exemplo de geração de credenciais

É possível fazer o download do arquivo de credenciais para respectiva utilização. Após esse processo, podemos criar um projeto node básico e instalar a biblioteca watson-developer-cloud. E com o seguinte exemplo de código, podemos realizar uma chamada simples para a API do Watson.

Figura 3 – Exemplo de chamada de API do Watson em NodeJs

Com esse simples exemplo, é possível extrair de um texto suas principais palavras. Esse e outros métodos de construção de um resultado cognitivo estão entre as principais funcionalidades do IBM Watson.

Autor: Cesar Lemos

Referências:

https://medium.com/cwi-software/ibm-watson-ii-desenvolvendo-uma-api-com-watson-assistant-node-js-5ea6212f293

https://medium.com/cwi-software/ibm-watson-i-watson-assistant-71532381de25

https://www.ibm.com/br-pt/cloud/watson-studio/details

https://www.npmjs.com/package/watson-developer-cloud

Um pouco sobre Bootstrap

 

 

 

 

 

 

Desenvolva com facilidade e praticidade.

Principal Framework CSS usado em front-end de aplicações web, com seus recursos, tornam o desenvolvimento de páginas mais fácil, páginas que se adaptam a diversos tamanhos de tela.

Conceito

Bootstrap é um conjunto de componentes correlacionados para ajudar a desenvolver interface com o usuário de forma ágil e fácil. Foi criado em agosto de 2011 pelos desenvolvedores do Twitter, Mark Otto e Jacob Thorton. Tem como objetivo central fornecer ao usuário uma facilidade de desenvolvimento de layouts pré-configurados, tanto para questão de produtividade como também da questão da responsividade.

Customização, responsivo e documentação são as principais características do Bootstrap. Pois a customização é rápida e fácil, responsividade torna o site mais responsivo e a documentação conforme o site do desenvolvedor, mostra que é bem simples e prático de aprender tornando a implementação fácil. Geralmente usado em frond-end, mas atualmente é utilizado em back-end, pois suas ferramentas visuais tornam o visual dos projetos avançados mais aperfeiçoado. Dessa forma, o usuário fica mais familiarizado com o sistema.

Incluso em seu conjunto de recursos, se encontram o HTML 5, CSS 3, Jquery, Node, JavaScript, Ajax. Dessa forma, ao baixar o pacote Bootstrap, não será mais preciso baixar os plug-ins do Jquery por exemplo, pois já faz parte do pacote do Bootstrap.

Rápido

Bootstrap é rápido por quatro motivos:

  1. Seus arquivos tem um tamanho bem pequeno.
    1. js tem no máximo 83kb;
    2. css tem no máximo 98kb
    3. webfont tem no máximo 144kb.
  2. Carrega só o que precisa, somente o que for utilizado no projeto.
  3. Escrever menos código, não precisará definir todo o layout do formulário, pois irá usar classes pré-definidas e melhorar o layout do formulário sem precisar codificar mais nada por exemplo.
  4. Utiliza o sistema de Grids, principal enfoco do Bootstrap, por causa das 12 colunas que se trabalha de forma dinamizada da ferramenta.

 Fases do Bootstrap:

  • Versão 1 – Somente disposto para facilitar o desenvolvimento para desktops. Não tinha os conceitos ligados a responsividade de acordo com outros dispositivos, exemplo tablets, smartphones.
  • Versão 2 – Desenvolvimento para desktop com adaptação para tablete e por fim smartphones. Foi implementado a responsividade para dispositivos móveis.
  • Versão 3 – Surgiu o conceito de mobile first, que é justamente a questão da responsividade inicial para mobile para posteriormente adaptação dos desktops. Inverso da segunda versão.
  • Versão 4 – Realizado a mudança do modelo Less para o Sass, deixando a compilação mais rápida. Fim do suporte para IE8 e lançamento do Bootstrap themes.

Sistema de grade (Grids System) é responsivel e permite até 12 colunas através da página. Tem 4 tipos de classes, dependendo do dispositivo e pode ser ntegrado com outro para criar layouts flexíveis. O layout de sites que são visualizados tanto em navegadores de desktops ou mobile, são de extrema importância, pois o uso das grids, tem o papel de ajustar o layout conforme o tamanho da tela. Assim, tornando sistemas de grade útil.

Bootstrap fornece ferramentas para a construção de sites e aplicações modernas, agregando recursos dinâmicos. Sendo uma ferramenta gratuita e de fácil acesso, vale muito a pena o uso de Bootstrap em projetos mais avançados.

Autor Douglas Beux
Fontes:
Baseado em http://www.ericplatas.com.br/artigos/introducao-bootstrap-framework/.
Adaptado de https://imasters.com.br/design-ux/design-responsivo/7-razoes-para-desenvolver-seus-web-designs-no-bootstrap/?trace=1519021197&source=single.
Adaptado de https://www.youtube.com/watch?v=0o2GWZ0uUeY&t=1839s.

Computação Cognitiva com o IBM Watson

Computação Cognitiva com o IBM Watson

Desde a década de 60 é investido em estudos em tecnologias que tenham a mesma capacidade dos seres humanos, de pensar e raciocinar sobre diversos assuntos, que possam tomar decisões baseadas na bagagem emocional e social, no entanto, estes estudos tiveram altos e baixos e poucos resultados significativos foram obtidos, mas no início dos anos 2000 essa tecnologia passou a ganhar uma maior notoriedade. A IBM, girante da tecnologia mundial, foi uma das pioneiras a lançar no mercado uma tecnologia de computação cognitiva, o IBM Watson, um software com capacidade de tomar decisões baseadas no conhecimento adquirido.

O IBM Watson foi criado em 2003 e recebeu este nome em homenagem ao fundador da IBM, o empresário norte-americano Thomas Watson. O Watson ganhou uma maior notoriedade somente em fevereiro de 2011 em um famoso show de perguntas e respostas de conhecimento geral nos Estados Unidos chamado Jeopardy, no qual venceu a disputa.  Esta tecnologia de computação cognitiva chegou ao Brasil em 2014, já com APIs traduzidas para a língua portuguesa.

O data center da IBM que hospeda o software do Watson é composto por duas grandes unidades, divididas cada uma em cinco torres, com 10 servidores IBM Power750. Tudo isso equivale a 2.800 computadores juntos. A memória é de 15 trilhões de bytes.

O Watson pode interpretar dados não estruturados vindos da web em qualquer formato, seja vídeo, texto ou foto, como faz um ser humano, mas com a velocidade de uma máquina com tecnologia de ponta. É daí que vem o nome de computação cognitiva, já que a cognição é o processo por meio do qual nós adquirimos conhecimentos a partir dos nossos sentidos.

À sua maneira, o IBM Watson pode pensar, graças a algoritmos complexos de inteligência artificial baseados em redes neurais e na tecnologia de aprendizagem chamada deep learning. Por dia, 2,5 bilhões de gigabytes de informações da web são processadas para que ele se torne ainda melhor.

Conforme os dados vão sendo lançadas ao IBM Watson, o sistema vai aprendendo cada vez mais sobre o complexo processamento de linguagem. Ele varia de idioma para idioma, mas se baseia em três pilares: gramática, estrutura e relação de palavras. É por isso que o Watson sabe que a manga da camisa não é uma fruta e o banco da praça não é uma instituição financeira.

Toda a análise é criada com base em computação probabilística, em que o resultado varia em função de um espectro e não simplesmente de parâmetros de “sim ou não” e “se isso, então aquilo”, como acontece em sistemas menos complexos.

Atualmente, a IBM oferece mais de 30 APIs (Interface de Programação de Aplicação) do IBM Watson a desenvolvedores. Com isso, a expertise de computação cognitiva é oferecida para empresas e startups que queriam criar um produto com inteligência artificial. Hoje, o Watson já tem aplicações importantes em quase 20 segmentos, incluindo saúde, advocacia, gastronomia e educação.

As APIs fornecidas pela IBM, disponíveis no site Bluemix, são na sua grande maioria gratuitas e podem ser utilizadas por desenvolvedores, no entanto, a partir do momento que há ganhos em escala com as aplicações, esses recursos passam a ser cobrados.

Dentre as diversas APIs oferecidas pela IBM na plataforma do Watson, foram listadas a seguir 5 exemplos que podem ser facilmente utilizadas, com uma breve descrição de cada uma.

Text to Speech

Transforma texto em áudio com entonação e cadência apropriada. Está disponível em diverso idiomas. Em português, há uma versão com voz feminina disponível, chamada de Isabela. Não tem custo para até 10 mil caracteres por mês.

Speech to Text

O serviço converte a fala humana para texto e pode ser usado para toda aplicação que precisa de uma ponte entre a voz e um documento escrito, incluindo sistemas de controle, transcrição de entrevistas ou conferências telefônicas e ditar e-mails e notas. A ferramenta usa inteligência de máquinas combinadas com informações de gramática e estruturas de linguagem com arquivos de áudio por gerar transcrições mais precisas. O serviço está disponível em Inglês (EUA), inglês (RU), japonês, árabe (MSA), mandarim, português (Brasil), espanhol, francês, coreano. O serviço é gratuito para até 100 minutos de áudio por mês.

Tone Analyser

Este serviço pode captar diversas informações de sentimento por meio da entonação de um texto, como: alegria, tristeza, raiva, etc. Essa entonação pode impactar a efetividade de uma comunicação em diferentes contextos. O Tone Analyser realiza análise cognitiva linguística para identificar melhores entonações para diferentes contextos de comunicação. Ele detecta diferentes tipos de tons: emocionais (raiva, desgosto, medo, alegria e tristeza), propensão social (abertura, conhecimento) e estilos de escrita (analítica, confessional e argumentativa) em um texto. Não tem custo para até 2500 chamadas de API por mês.

Personality Insights

A ferramenta oferece insights baseados em dados transacionais e mídias sociais para identificar perfis psicológicos que podem determinar decisões de compra, intenções e comportamentos e, assim, ampliar taxas de conversão. É gratuito para até 1000 chamadas de API por mês.

Watson Assistant (formerly Conversation)

A ferramenta permite que desenvolvedores projetem formas para que aplicações interajam com usuários finais por meio de uma interface de conversação. O Dialog Service habilita aplicações com linguagem natural para prover respostas automáticas para questões encaminhadas por consumidores, encaminhamento de processos, ou atendimento para resolução de tarefas. A tecnologia pode, ainda, armazenar e mapear informações dos perfis dos usuários para aprender mais sobre os consumidores de uma empresa, guiando os consumidores por meio de processos ou os abastecendo de informações relevantes. A ferramenta é grátis para as primeiras 10 mil chamadas de APIs por mês.

O IBM Watson proporcionou uma quebra de paradigma para desenvolvedores e empresas de software, tornando acessível a experiência de trabalhar com computação cognitiva. Com as diversas APIs do Watson é possível agregar valor aos softwares desenvolvidos com essas tecnologias.

Autor: Ronaldo Santos

Extração de dados de equipamentos em tempo real

O que é extração de dados em tempo real?

A extração de dados em tempo real é um processo realizado para captura dados de equipamentos de hardware com objetivo de empregar em aplicações de software especificas. Frequentemente utilizado em aplicações direcionadas a IoT (Internet das coisas) a extração de dados em tempo real tem algumas limitações, empregada de forma correta a extração pode se torna uma forte ferramenta para o desenvolvimento de diversas aplicações com foco em automação e controle.

A extração de dados em tempo real

O processo de extração de dados é utilizado com objetivo de reduzir o tempo e tornar mais assertivo o processo de monitoramento e utilização de dados. Por exemplo, um sistema que tem como objetivo realizar o controle de um processo industrial recebe com um frequência “x” uma informação referente ao processo que é inserida por um usuário passível de erro, essa informação gera um dado no sistema, se o mesmo sistema pudesse realizar a consulta da mesma informação no tempo em que ela foi gerada o sistema eliminaria o risco de erro durante esse pequeno processo, considerando que esse processo é realizado com frequência o tempo que usuário insere a informação reflete no tempo do monitoramento do dado, enquanto a coleta em tempo real diminui em grande parte esse tempo.

Como é realizada a coleta em tempo real

O sistema embarcado compatível com captura de dados em tempo real realiza a leitura dos sensores e se comunica com a aplicação, informando os dados capturados pelos sensores para utilização na aplicação.

Exemplos de utilização de captura de dados em tempo real.

  • Aplicativos de comunicação com computador de bordo do carro;
  • Centros de monitoramento de processos Industriais;
  • Identificação por radiofrequência RFID;
  • Sistemas de automação residencial;

Algumas vantagens na utilização de captura de dados em tempo real.

  • Elimina falhas humanas;
  • Agiliza e torna mais assertivo o processo;
  • Reduz os custos dos processos;
  • Aumenta a produtividade;

 

Autor: Tiago Spadetto dos Santos

Referências

KING ROGERS, Lorie. Data capture basics: Data capture technology can help an operation see its products in real time and take proactive steps to keep materials moving smoothly through the supply chain. Here’s a look at several basic data capture technologies.. 1. Disponível em: <https://www.mmh.com/images/site/MMH1110_EquipReport_Data.pdf>. Acesso em: 27 abr. 2018.

DO BRASIL, GE. Análise de dados e máquinas conectadas: conheça o centro de monitoramento da GE Water & Process Technologies! 1. Disponível em: <https://gereportsbrasil.com.br/análise-de-dados-e-máquinas-conectadas-conheça-o-centro-de-monitoramento-da-ge-water-process-6c4f79399132>. Acesso em: 20 abr. 2018.

Computação em Nuvem

Com o crescente volume de dados que empresas e demais organizações tem de armazenar e processar, um novo nicho de negócio surgiu para suprir essa demanda, a Computação em Nuvem. Onde seus dados podem ser hospedados em servidores e acessados a qualquer hora e em qualquer local, contanto que haja conexão com a rede. Continue lendo “Computação em Nuvem”

Uma introdução ao Docker e Kubernetes

Tendo em mente o gerenciamento e escalabilidade de serviços na nuvem e em servidores, as ferramentas Docker e Kubernetes formam uma dupla inseparável e indispensável. Com a possibilidade da execução de instancias e serviços em contêineres, Docker dispõe um sistema relativamente simples de compartimentação de recursos e o Kubernetes, de gerenciamento e escalonamento dos serviços de conteinerização. Continue lendo “Uma introdução ao Docker e Kubernetes”

Hospedando aplicação em Laravel em servidor Linux Compartilhado

Neste artigo irei explicar como realizar a publicação de uma aplicação desenvolvida em Laravel em um servidor Linux compartilhado (neste caso utilizarei como exemplo a hospedagem compartilhada da GoDaddy). Iremos realizar o upload da aplicação para o Github, configurar o acesso ssh no servidor Linux compartilhado, criar os dados de acesso a banco de dados e o banco de dados em si.

Continue lendo “Hospedando aplicação em Laravel em servidor Linux Compartilhado”

Big Data! O que é?


Trabalhar com Big Data é retirar informações importantes para conseguir melhores resultados, a partir de uma gigantesca quantidade de dados de forma rápida e confiável.

Qualquer pessoa incrementa todos os dias centenas e centenas de informações novas em diversas redes sociais, documentos eletrônicos,blogs, lojas online, entre tantos outros. E o que as empresas fazem com estes milhares de dados? Praticamente nada. Porém com a Big Data isto mudou completamente, se quiseres aumentar a satisfação dos seu clientes e/ou fazê-los comprarem mais, são exatamente estas informações que devem ser analisadas. Continue lendo “Big Data! O que é?”

ACESSO REMOTO VIA SSH – Secure Shell

Existem várias formas de se fazer um acesso remoto entre um computador e outro, tanto de forma segura ou não. Nesse artigo será demonstrada uma técnica de acesso remoto seguro através do protocolo SSH (Secure Shell), explicando sobre o seu funcionamento.

1. Introdução

Com o avanço tecnológico das redes de computadores começou a se pensar em uma forma de acessar outro computador sem que o usuário estivesse presente, com isso, surgiram protocolos e programas para tal necessidade. Um deles foi o telnet, que através de comandos de texto permitia enviar arquivos e executar comandos em outra máquina, mas o grande problema era a segurança, pois tudo que era enviado não tinha nenhum tipo de criptografia, nem mesmo usuário e senha, sendo possível capturar essas informações através de ferramentas de interceptação de conteúdo. Através dessa necessidade surgiu o protocolo de acesso remoto seguro SSH (Secure Shell). Continue lendo “ACESSO REMOTO VIA SSH – Secure Shell”