Material Design – O que é e para que serve esse sistema Google

Material Design nasceu da coleta de informações e conhecimentos que se transformaram em diretrizes para aprimorar a relação homem-máquina, isso tornou-se em um sistema de desenvolvimento para interface do usuário, definido por um conjunto de propriedades que qualquer objeto dentro do sistema deve aderir.

É chamado Material, pois a ideia é trazer um material sólido para a interface virtual, todos os objetos têm uma altura definida, essa altura ajuda na interação com o usuário dando dicas visuais e também é responsável pelas sombras geradas, assim dando um efeito mais natural aos olhos.

As diretrizes do material design não só criam uma experiência prazerosa visualmente, mas também proveem consistência através dos dispositivos e aplicações e dicas do que virá a acontecer na tela.

Pense como um Engine de um jogo, onde toda a física, texturas, iluminação, animações são delimitadas pelas propriedades da Engine. O mesmo vale para o Material Design. Existe um ambiente 3D onde todos os elementos funcionam de formas restringidas pelas propriedades e diretrizes definidas pela Google.

No Material Design existem as propriedades físicas, propriedades de transformação e propriedades de movimento, estas propriedades são combinadas para temos componentes com um comportamento parecido com papel que pode mudar dinamicamente dependendo do seu uso.

Limitações:

Existem algumas limitações impostas pela Google que devem ser respeitadas:

  • Materiais são sólidos e não podem atravessar um ao outro
  • Materiais não podem ser curvados ou dobrados
  • Todos os materiais tem a mesma espessura, definida pelo Google como 1DP (medida utilizada no desenvolvimento Android, que diferente do pixel, vai apresentar o mesmo resultado em diferentes resoluções).

Sombra:

A Sombra é uma das maneiras mais rápidas de identificarmos onde um objeto se localiza num espaço 3D, ou seja, a distância relativa entre eles. A sombra também nos ajuda a identificar movimento, que como estamos em um ambiente 3D pode ser relacionada a altura do material.

Movimentos:

No Material Design movimentos nos trazem um senso de objetivo. Objetos podem ser movidos livremente, e especialmente em relação a altura como mencionado acima. Essa altura é bastante utilizada como uma dica visual para indicar o local de interação do usuário. Isso é implementado usando “Dynamic Elevation Offset“, que é a posição de destino do objeto relativo a posição de repouso dele mesmo.

Por exemplo todos os componentes que sobem num clique, tem a mesma mudança de elevação relativos aos suas posições de repouso. O objetivo é que todos os movimentos do mesmo tipo possam ser agrupados, gerando consistência.

Animações:

O Google identificou que mudanças abruptas de velocidade ou direção são brutas e causam distrações indesejadas. Com isso muitas das animações contam com um processo de aceleração, e para se tornar mais próxima ao mundo real se faz uso de aceleração assimétrica.

Aceleração assimétrica pode indicar o ‘peso’ de um objeto. Objetos menores ou mais leves podem se movimentar mais rápido porque eles precisam de menos “força”, e objetos mais pesados podem demorar um pouco para acelerar porque precisam de mais “forca”.

A transição entre dois estados visuais deve ser clara, suave e de pouco esforço. Uma transição bem feita indica ao usuário onde ele deve focar a sua atenção. O Google chama isso de “Visual Continuity”, tem as seguintes diretrizes para ser consideradas:

  • Onde o usuário deve focar, quais elementos e movimentos apoiam esse objetivo.
  • Transições devem estar conectadas visualmente, através de elementos persistentes e cor.
  • Usar os movimentos com precisão, isso traz clareza e suavidade pra transição.

Quando fazendo uma transição o Material Design considera a ordem o timing dos elementos, isso transmite qual conteúdo é mais importante, criando um caminho para o olho do usuário seguir, o Google chama isso de ” Hierarchical Timing” e deve ser sempre usado para direcionar a atenção do usuário e não deixar todas as transações ocorrerem ao mesmo tempo sem indicativos do que é mais importante.

Quando as transações de elementos são coordenadas, isso cria uma facilidade para o usuário entender o aplicativo, os destinos dos elementos na transação devem fazer sentido e ser o mais ordenados possível, isso é chamado de “Consistent Choreography”. Para obter esse resultado é indicado evitar movimentos conflitosos ou caminhos sobrepostos, a altura em que os objetos de movimentam e porquê fazem isso e indicam até visualizar se o traçando o caminho de todos os objetos movimentados obtemos uma imagem limpa e organizada.

Material Design imita a realidade, traz um sistema de design simples para um ambiente digital 3D com parâmetros e diretrizes bem definidos. Intuitivamente transmite como uma interface deveria funcionar se fosse feita de papel digital. Essa intuição auxilia no rápido entendimento e reconhecimento da interface, com o menor esforço do usuário.

Para saber mais sobre o Material Design e começar a utilizado segue o site oficial, que conta com uma vasta documentação e representações visuais para melhor entender alguns destes conceitos: https://material.io/

Também interessante ver dos próprios criadores alguns comentários da criação e desenvolvimento, segue vídeo de apresentação do Google sobre o tema: https://www.youtube.com/watch?v=rrT6v5sOwJg

Autor: Mauricio Calgaro

Mínimo Produto Viável – MVP

Startups são empresas em fase inicial que desenvolvem produtos ou serviços inovadores, com potencial de rápido crescimento. Neste contexto de empreendedorismo, principalmente abordando o tema startups, temos o conceito de MVP que no português significa Mínimo Produto Viável.

O MVP é a versão mais simples de um produto que pode ser lançado com uma quantidade mínima de esforço e desenvolvimento. Um MVP ajuda os empreendedores a iniciarem um processo de aprendizagem, poupando tempo e esforços.

O MVP pode ser uma das primeiras etapas do processo empreendedor. Eleger um MVP significa observar e coletar dados sobre clientes e criar situações práticas de negócio que façam com que a startup aprenda e se molde rapidamente com o intuito de lançar uma solução inovadora.

A prática ajuda a investir em um produto certeiro, que seja realmente útil para o seu público alvo. Além disso, depois de algum tempo de prática será possível prever os fatos antes que eles aconteçam, lançar novidades antes que seja tarde demais.

Desenvolver um MVP para ideia de negócio não é garantia de sucesso. Eles são projetados para testar as suposições de um problema que queremos resolver sem que haja muitos investimentos. Para tanto, existem alguns tipos de MVP para auxiliar a escolha da estratégia inicial.

 

Tipos de MVP

 

Papel

Podem ser desenhos feitos à mão, de uma interface para usar como protótipo, ou exemplos ilustrados de um projeto. Fáceis de fazer, visuais que criam entendimento compartilhado. Este tipo de MVP possui algumas limitações, a sua interação é limitada e não testa usabilidade ou hipóteses. Alguns exemplos são diagramas ou esboços.

 

Protótipo Interativo

Estes podem ser representados por maquetes interativas, clicáveis. Testa designs e usabilidades, itera soluções rapidamente e ainda usa entrevistas com clientes. Este não testa hipóteses e nem tecnologias de apoio. Exemplos são HTMLs ou maquetes clicáveis, ou ainda vídeos.

 

Concierge

É um serviço pessoal, em vez de um produto, que manualmente guia o cliente pelo processo, usando os mesmos passos propostos para resolver o problema do cliente no produto digital. Reduz a complexidade, suporta pesquisa generativa, valida suposições qualitativamente com baixo investimento. Seus contras são a escalabilidade limitada, é manual e tem uso intensivo de recursos, o cliente sabe do envolvimento humano.

 

Mágico de Oz

Este é o produto real em operação. Apesar de nos bastidores, todas as funções são executadas manualmente sem o conhecimento da pessoa que está usando o produto. Uma solução em operação da perspectiva do cliente, uma pessoa no papel do mágico pode conseguir envolvimentos mais próximos. Possibilita pesquisa de avaliação para preço e validação da proposta de valor. Alguns dos contras podem ser a escalabilidade limitada devido a um alto comprometimento de recursos.

 

Micronicho

Micronicho consiste em reduzir todas as features do produto ao mínimo, a fim de descobrir se os clientes estão interessados ou dispostos a pagar por ele. Um teste altamente focado, dedicado a qualquer tópico específico, exige mínimo esforço. Um dos contras seria a necessidade de investimento financeiro, pois um dos exemplos deste seria a disponibilização de uma página web simples com o produto oferecido.

 

Software em Operação

Como o próprio nome deste MVP já diz, trata-se de oferecer o produto em operação funcionando plenamente para resolver o problema de um cliente, equipado para medir comportamento de cliente e interações. Alguns dos benefícios são testar hipóteses em um ambiente real, valida suposições qualitativamente. Porém este é caro, precisa de investimento em pessoas e ferramentas.

 

Empresas que utilizaram MVP

 

Facebook

A rede social foi testada, inicialmente, para dentro dos muros da Universidade de Harvard. O período em que a rede atingia apenas os alunos da comunidade universitária foi importante para que o jovem Mark promovesse alterações fundamentais, em linha com o que foi se revelando necessário ao longo do processo de validação.

 

Groupon

A primeira versão do Groupon era um site extremamente simples, feito em wordpress e que gerava cupons em pdf, os quais eram enviados de forma manual a cada interessado.

 

Apple

O iPhone 1 era o típico exemplo de MVP. O aparelho não possuía algumas funções básicas, como copiar e colar, além de exigir download obrigatório do iTunes para ativação. O objetivo aqui era claramente segurar algumas funcionalidades para que fossem lançadas nas versões seguintes do equipamento, gerando ansiedade e euforia entre os clientes.

 

Foursquare

Antes de ir a campo, o serviço de localização coletou depoimentos e sugestões de possíveis usuários, por meio do Google Docs, além de disponibilizar uma versão mais restrita do produto a um grupo seleto de futuros clientes.

 

Autor: Giovani Augusto Varaschini

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.

O que é e onde aplicar Angular JS

AngularJS

No passado usavam-se sites estáticos, sem iteração com os usuários, porém logo surgiram aplicações Web, essas sim necessitavam de recursos e o nível de complexidade aumentou.

Inicialmente usou-se JavaScript/Jquery mas nem sempre ela garantia a alta produtividade e a facilidade na manutenção de código.

O que é o Angular JS?

AngularJS é um framework front-end que auxilia a criação de Single Page Aplications(SPA), e vem ganhando destaque desde de seu surgimento em 2011-2012 por Misko Every e Adam Ebrons, cujo objetivo era facilitar a criação de aplicações web. É baseado em um modelo MVW(Model View Whatever), uma brincadeira da Google dando um ponto final a uma longa discussão entre a comunidade de desenvolvedores que não chegavam em um acordo sobre o modelo utilizado cujos principais eram: MVC(Model View Controller), MVP(Model View Presenter) e MVVM(Model View View Model).

O começo:

Angular JS, foi desenvolvido por Misko Hevery em um projeto pessoal com o objetivo de aprimorar o desempenho de aplicações Web. Pouco tempo depois, Hevery entrou para o Google e aplicou sua framework no projeto Google feedback, diminuindo o número de linhas do código e aumentou sua performance. Google feedback e uma ferramenta que está presente em todos os produtos da Google como: Google+, Chrome, Hangouts entre outros, onde você pode enviar impressões do que estão acontecendo nos produtos como: erros, críticas e com isso o suporte vai poder observar se usuário final está gostando ou não dos produtos. Atualmente, o Google e o principal contribuinte para o código do AngularJs.

O AngularJS veio para padronizar a estrutura de desenvolvimento de aplicações para web, fornecendo um template com base nos padrões client-side.

Quem usa AngularJS:

Muitos clientes de grande porte usam Angular, devido a sua performance com simplicidade, os sites possuem o framework Angular: Airlines, paypal, cvs shop ,Micro Soft, Google Play,ABC News, San Disk, Trello.

Por que usar?

Usar este framework facilita a produtividade pelo reuso de código. Também visando a continuidade, hoje o mesmo está sendo mantido pelo Google, tendo como a certeza que ele não deixará o mercado tão cedo, tendo esforços de grandes equipes na linha de desenvolvimento, o angular segue muito bem o mantra da produtividade. Por ser orientado a componentes, é muito rápido e fácil programar com ele.

Praticamente qualquer coisa que se precisa já tem pronta por aí nos milhares de repositórios do GitHub. Existe inclusive um site que reúne mais de 2000 módulos open-source para facilitar a busca https://angular.io/guide/ngmodules. Possui comunidade Sólida o Repositório do Angular no GitHub tem 49 mil estrelas e mais de mil contribuintes, além de mais que 150 mil repositórios com scripts que utilizam a tecnologia.

No Stack Overflow, a maior comunidade de perguntas e respostas do mundo, temos quase 180 mil perguntas. Caso o interesse seja em vídeos sobre o assunto, o YouTube nos dá uma marca impressionante de 470 mil vídeos. O interesse da comunidade tem subido exponencialmente nos últimos anos, de acordo com o Google.

O Angular está sendo conhecido pela internet também pela sua curva de aprendizado. Em poucos minutos você aprende seus conceitos e já está desenvolvendo seu primeiro app.

O AngularJS usa em sua arquitetura o modo MVC (Model View Controller), que é um padrão para dividir uma aplicação em diferentes partes (modelo, visão e controle), cada uma com suas respectivas responsabilidades. Contando com três camadas de comunicação, que são elas:

  • Controller : Sempre que você pensar em manipulação de dados, pense em model. Ele é responsável pela leitura e escrita de dados, e também de suas validações.
  • View: Simples: a camada de interação com o usuário. Ela apenas faz a exibição dos dado.
  • O responsável por receber todas as requisições do usuário. Seus métodos chamados actions são responsáveis por uma página, controlando qual model usar e qual view será mostrado ao usuário.

Um exemplo disso seria um restaurante, o Controller é o pessoal da cozinha que prepara o prato, mas não sabe para quem irá fazer, a View é o cliente que apenas recebe o prato e consome, mas não sabe quem fez, o Scope é como se fosse o garçom que faz o meio de campo entre Controller e View.

Outro recurso interessante para economia de dados e melhor performance é carregar apenas uma página principal, recursos de aplicação e outras páginas são carregadas por demanda, deixando a experiência mais fluida. Essa funcionalidade é conhecida como Route Engine. Este mecanismo de rotas é disponibilizado com o nome de angular-route.js.

A utilização deste framework torna a aplicação mais rápida e mais enxuta do que as outras formas de desenvolver interface para web.

 

Autor: Michel Toffolo

Fonte de referências:

https://tasafo.org/2014/11/26/porque-utilizar-angularjs-no-seu-proximo-projeto/

http://blog.algaworks.com/o-que-e-angularjs/

https://waldyrfelix.com.br/8-motivos-que-me-levaram-a-usar-o-angularjs-como-primeira-op%C3%A7%C3%A3o-em-meus-projetos-cccc222fd22e

 

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

Gamification em Aplicativos como Forma de Ampliar o Engajamento

O mundo dos jogos atrai milhares de pessoas em todo o mundo, sejam eles eletrônicos, de tabuleiro ou por atividades físicas. Este texto tem por objetivo, esclarecer o conceito de gamification, mostrar casos de aplicação, e entender como utilizar este método no meio empresarial, para ampliar o engajamento efetivo em atividades variadas.

O que é Gamification?

Gamification (gamificação) pode ser definido, de forma mais consistente, como sendo uma estratégia, apoiada na aplicação de elementos de jogos, para atividades non-game que é utilizada para influenciar e causar mudanças no comportamento de indivíduos e grupos (BUNCHBALL INC., 2010). Gamificação é um termo recente, mas a ideia de utilizar os mecanismos dos jogos para resolver problemas e aumentar o engajamento, existe há bastante tempo.

Na educação infantil, os professores utilizam, de uma vasta variedade de jogos para desenvolver uma experiência lúdica, e mais interessante para os alunos, na hora de aprender os números, letras e sílabas.

No meio empresarial, temos diversos casos de aplicação da gamificação, seguem alguns exemplos:

Programa de Milhas

As companhias aéreas, têm dificuldade em fidelizar o cliente, pois este, acaba buscando outras companhias devido ao baixo custo da passagem. Por isso, as companhias criaram o programa de milhas, onde a cada viagem, são acumulados pontos que são revertidos em descontos, nas passagens aéreas e outros benefícios.

Duolingo

A plataforma de ensino de idiomas, soma quase 6 milhões de downloads do aplicativo na loja Google Play. Os conteúdos são divididos em níveis, e para desbloquear os níveis mais avançados, o usuário deve somar pontos, completando os exercícios disponibilizados. Um ranking de classificação é montado a partir da lista de amigos que utilizam a plataforma.

Strava

As corridas, pedaladas e outras atividades físicas, têm sido mais competitivas com o uso do Strava. Além do aplicativo armazenar as informações de geolocalização, e performance do usuário durante a atividade física, os trajetos comuns entre os atletas são monitorados. Com esta informação a plataforma monta um ranking diário, semanal, mensal e geral de performance dos atletas. O usuário conquista troféus, na modalidade bronze, prata e ouro, caso supere suas marcas pessoais, ou supere marcas de outros usuários.

Isto é engajamento!

Os desafios impostos pelos games geram uma motivação intrínseca, ou seja, parte da própria pessoa envolvida na atividade.

O termo “engajamento”, em um contexto empresarial, indica a conexão entre o consumidor e um produto ou serviço. Não há uma métrica específica, que mensure suficientemente o engajamento, é melhor pensar em um conjunto de métricas (ZICHERMANN; CUNNINGHAM, 2011), são elas:

  • Recência;
  • Frequência;
  • Duração;
  • Viralidade;
  • Avaliações.

Para um engajamento mais significativo, uma combinação entre as métricas deve ser levado em consideração, conforme a necessidade do negócio. Por exemplo, para o Duolingo, são consideradas mais importantes a frequência e duração da atividade no aplicativo.

E agora, como “Gamificar”?

Para a implementar a gamificação, alguns atributos chaves podem ser levados em consideração:

  • Programas de pontuação
  • Leaderboards / painel com ranking
  • Feedback / divulgação dos méritos alcançados
  • Regras
  • Premiações / recompensas
  • Selos, adesivos e distintivos
  • Mudança de nível
  • Troféus

É possível encontrar exemplos de gamificação em aplicativos de produtividade, mídias sociais, sites colaborativos, campanhas de incentivo, ações de marketing e muito mais, sempre com o objetivo de envolver os participantes, gerar mais engajamento e produtividade.

O método de gamificação se mostra muito eficiente, através dos desafios impostos e recompensas, que motivam e engajam os usuários. É importante conhecer o negócio, para analisar e descobrir qual forma de engajamento é necessária, e aplicar os métodos de gamificação baseados nesta perspectiva.

Autor: Gabriel Susin

Referências

BUNCHBALL INC. Gamification 101: an introduction to the use of game dynamics to influence behavior. 2010. Disponível em: <http://jndglobal.com/wp-content/uploads/2011/05/gamification1011.pdf>. Acesso em: 28 abril. 2018.

ZICHERMANN, G.; CUNNINGHAM, C. Gamification by design. Sebastopol: O’Reilly, 2011.

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.

O que é, onde aplicar e quais as vantagens da Linguagem R

 

R e os Carros

Você já foi impactado pela notícia de que os dados são o novo petróleo? Você já sabe que a Ciência de Dados é dita como a profissão mais sexy do século? Pois bem, para analisar os dados o Cientista de Dados se vale de diversas ferramentas. Este artigo tem a finalidade de apresentar uma destas ferramentas: a Linguagem R.

O que é o R?

R se presta a diversas funções, desde uma calculadora científica, até a realização de complexas análises estatísticas. Além disso, o R também apresenta uma série de recursos para plotagem de gráficos, como personalização de: cor, tipo e tamanho de letra, símbolos, títulos e subtítulos, pontos, linhas, legendas, planos de fundo e muito mais. Mais que um software que realiza análises estatísticas, R é um ambiente e uma linguagem de programação orientada a objeto. Nele, números, vetores, matrizes, arrays, data frames e listas podem ficar armazenados em objetos.

Origens

S é a linguagem que foi desenvolvida por John Chambers nos laboratórios da Bell Labs. S foi inicialmente desenvolvida em 1976 como um ambiente de análise estatística, originalmente implementada usando bibliotecas da linguagem de programação Fortran. Entretanto, as primeiras versões da linguagem não continham funções de modelagem estatística.
Entender a filosofia da linguagem S, ajuda a entender as raízes que geraram a linguagem R. O fator mais importante a notar, é que a linguagem S nasceu como uma ferramenta de análise de dados e não como uma linguagem de programação tradicional. Os inventores de S tinham como objetivo tornar a análise de dados mais fácil, inicialmente para eles e então para os outros.

A linguagem R surgiu um pouco depois da linguagem S. Uma das limitações de S era o fato da linguagem estar disponível apenas através do pacote comercial S-PLUS. Em 1991, R foi criada por Ross Ihaka e Robert Gentleman no Departamento de Estatística da Universidade de Auckland. Em 1993 a linguagem R foi anunciada em público pela primeira vez. Em 1995, Martin Mahler fez uma importante contribuição, convencendo Ross e Robert a usarem a licença GNU General Public e tornar R um software livre. Isso permitiu que o código fonte da linguagem R se tornasse disponível para toda a comunidade. Em 1996 as listas públicas R-help e R-devel foram criadas e em 1997 foi formado o grupo R Core, com profissionais associados ao S e S-PLUS, estatísticos e cientistas da computação. Atualmente o grupo R Core controla o código fonte de R. Em 2000, finalmente a versão 1.0.0 do R foi liberada ao público.

Funções da Linguagem R

60% do tempo de um Cientista de Dados é usado no processo de limpeza, transformação e organização dos dados, ou seja, na manipulação. Analisar grandes conjuntos de dados, agrupá-los, aplicar modelos estatísticos, importar/exportar os dados para bancos de dados relacionais, tudo isso pode ser feito com R. A linguagem pode ser usada em todo o processo analítico, desde a coleta de dados, passando pela manipulação, Machine Learning, até a apresentação dos dados com a criação de gráficos a partir dos resultados das análises de dados.

Aplicações

A linguagem R pode ser aplicada nas mais diversas áreas, tais como: Pesquisa Científica, Business Analytics, Desenvolvimento de Software, Relatórios Estatísticos, Análise Financeira, Ciência Sociais e Big Data Analytics.

Autor: Diego Ribeiro

Artigo baseado em materiais do curso e no blog da Data Science Academy.

Comunicando com sistemas embarcados

Se você já precisou integrar sistemas embarcados com aplicação de terceiros, servidores e banco de dados, a primeira idéia que vem naturalmente é o uso de WebService. Imagine agora, como isso era feito na época que não existia essa tecnologia, e dessa forma você poderá ter uma pequena dimensão do impacto gerado por ela no mundo da automação e dos sistemas embarcados.

O presente artigo objetiva uma breve abordagem sobre o conceito da tecnologia WebService e como está tecnologia de comunicação entre sistemas teve profundos impactos no desenvolvimento e na integração sistemas embarcados.

Como fazer?

Na base de tudo está a Internet, sem ela seria impossível o surgimento da tecnologia WebService. Basicamente o WebService faz com que os recursos de uma determinada aplicação possam estar disponíveis sobre a rede de forma padronizada, desta forma uma aplicação pode invocar outra para executar tarefas que podem ser simples ou complexas, mesmo que as duas sejam escritas em linguagens diferentes.

O principal motivo que torna o WebService tão atraente é o fato que utiliza tecnologias padronizadas como o protocolo HTTP/HTTPS para transporte de dados, os quais são transferidos sobre XML encapsulados no protocolo SOAP (Simple Object Access Protocol). Também é muito comum a utilização do protocolo REST (Representational transfer protocol) como protocolo de transferência, neste caso os dados são encapsulados em notação JSON que é mais leve que o XML.

Na maioria dos casos, os grandes fabricantes de hardware embarcado já provem um WebService que abstrai todas as funções de baixo nível de comunicação, assim o desenvolvedor somente deve acessar uma url fornecida pelo fabricante com os métodos disponíveis para enviar e receber dados ao equipamento.

Uso de padrões facilita muito a vida

Além dos grandes fabricantes de hardware, também existem empresas especializadas em conectividade, que fornecem softwares com protocolos específicos para centenas de equipamentos de diferentes fabricantes. Estes sistemas normalmente são divididos em três camadas, conforme mostra a figura abaixo.

Figura 1

A primeira camada concentra os drivers proprietários de cada fabricante que efetivamente fazem a comunicação funcionar. Esta é a camada de mais baixo nível que é totalmente abstraída ao usuário final da informação.

A segunda camada é uma seríe de serviços que rodam em nível servidor e compreendem normalmente os padrões OPC-DA e IoT, ambos os padrões fornecem uma normatização de como a informação será coletada ,armazenada e disponibilizada para a camada superior.

A terceira e última camada fornece as interfaces para comunicação com aplicação de terceiros, normalmente uma API REST que o cliente pode consumir para transferir e receber dados dos sistemas embarcados.

Agora que entendemos um pouco mais sobre as bases sob as quais a tecnologia foi desenvolvida, podemos considerar que qualquer sistema embarcado que possua uma conexão  Ethernet é capaz de enviar e receber dados através de um WebService. Portanto, a construção de penosas rotinas proprietárias de difícil manutenção e atualização tornaram-se praticamente obsoleta nos dias atuais.

Autor: Alex Sandro Meireles Da Cruz

Links relacionados:

 http://mqtt.org

https://opcfoundation.org

https://www.kepware.com

Rest API

A Representational State Transfer (REST), em português Transferência de Estado Representacional, é um estilo de arquitetura que define um conjunto de restrições e propriedades baseados em HTTP. Neste artigo, abordaremos alguns conceitos básicos sobre esta arquitetura:

 

O QUE É API?

O acrônimo API que provém do inglês Application Programming Interface (Em português, significa Interface de Programação de Aplicações), trata-se de um conjunto de rotinas e padrões estabelecidos e documentados por uma aplicação A, para que outras aplicações consigam utilizar as funcionalidades desta aplicação A, sem precisar conhecer detalhes da implementação do software.

Desta forma, entendemos que as APIs permitem uma interoperabilidade entre aplicações. Em outras palavras, a comunicação entre aplicações e entre os usuários.

 

O QUE É REST?

REST significa Representational State Transfer. Em português, Transferência de Estado Representacional. Trata-se de uma abstração da arquitetura da Web. Resumidamente, o REST consiste em princípios/regras que, quando seguidas, permitem a criação de um projeto com interfaces bem definidas. Desta forma, permitindo, por exemplo, que aplicações se comuniquem com clareza.

 

ORIGEM DO REST

O HTTP é o principal protocolo de comunicação para sistemas Web, existente há mais de 20 anos, e em todo esse tempo sofreu algumas atualizações. Nos anos 2000, um dos principais autores do protocolo HTTP, Roy Fielding, sugeriu, dentre outras coisas, o uso de novos métodos HTTP. Estes métodos visavam resolver problemas relacionados a semântica quando requisições HTTP eram feitas.

Estas sugestões permitiram o uso do HTTP de uma forma muito mais próxima da nossa realidade, dando sentido às requisições HTTP.

 

EM RESUMO

  • REST é abreviatura de Representational State Transfer;
  • É uma outra forma de desenvolver WebServices
  • REST é um conjunto de princípios que definem como Web Standards como HTTP devem ser usados
  • Aderindo aos princípios REST, teremos um sistema que explora a arquitetura da Web nosso beneficio

 

MÉTODOS HTTP

Abaixo, os métodos padrões para a execução de requisições HTTP, em consumo de serviços REST:

 

  • PUT (INSERIR)

Semelhante ao método POST, a ideia básica do método PUT é permitir a atualização de um recuso no servidor.

 

  • DELETE (EXCLUIR)

Como você já deve estar imaginando, o método DELETE é utilizado com o intuito de remover um recurso em um determinado servidor.

 

  • GET (CAPTURAR)

O método GET é utilizado quando existe a necessidade de se obter um recurso. Ao executar o método GET sob um recurso, uma representação será devolvida pelo servidor.

 

  • POST (ATUALIZAR)

Utilizamos o método POST quando desejamos criar algum recurso no servidor a partir de uma determinada representação. Exemplo disso é quando fazemos a submissão de algum formulário em uma página Web.

 

O QUE SIGNIFICA RESTFUL

Existe uma certa confusão quanto aos termos REST e RESTful. Entretanto, ambos representam os mesmo princípios. A diferença é apenas gramatical. Em outras palavras, sistemas que utilizam os princípios REST são chamados de RESTful.

 

REST: conjunto de princípios de arquitetura

RESTful: capacidade de determinado sistema aplicar os princípios de REST.

 

CONCLUSÃO

Neste artigo, eu procurei oferecer um rápida introdução sobre os conceitos por trás do REST, a arquitetura da Web. É extremamente importante entender o conceito da arquitetura Restful para evitar perda de tempo na construção da API, facilitando a vida de outros usuários que podem estar do outro lado do mundo tentando consumir a sua API. É muito importante evitar que suas APIS sofram alterações constantes e mudam de versão a todo momento, assim dificultando ainda mais a comunicação. Por isso é bom planejar e projetar bem antes de disponibilizá-la.

 

Autor Jonatan Maicon da Costa

 

Referências:

Baseado em,

https://imasters.com.br/front-end/entendendo-como-funciona-o-restful-de-verdade/

https://www.infoq.com/br/articles/rest-introduction

https://becode.com.br/o-que-e-api-rest-e-restful/

http://blog.algaworks.com/4-conceitos-sobre-rest-que-qualquer-desenvolvedor-precisa-conhecer/

UX Design

Uma mudança na forma da visão fornecedor-cliente pode definir futuro de crescimento ou fechamento de um empresa.

Muitas pessoas acreditam que UX Design está ligado diretamente a TI, mas esse é um mito que deve ser quebrado, a UX Design eleva o padrão de experiencia do usuário, podendo ser de um simples uso de um fósforo ou de um complexo sistema web.

O que é UX ?

User Experience, em português, experiência do usuário. Essa sigla referência o motivo, quem, como  e onde é utilizado um sistema ou objeto, que pode ser qualquer coisa.


“User Experience é tudo! É a forma com que você sente o mundo, é a forma como você experiencia a sua vida, é a forma como você experiencia um serviço, um aplicativo, um sistema de computador. Mas é um sistema. É tudo!”

— Don Norman, criador do termo “UX (User Experience)”

O objetivo principal é melhorar de forma continua a usabilidade e a experiencia que o usuário tem com o produto.

É importante ressaltar que UX Experience é uma área multidisciplinar que engloba conhecimentos de áreas diversas, então é muito comum ter conceitos de psicologia atrelado a tecnologia no momento da análise e da melhoria do produto que dever ser algo feito de forma continua.

UI Design ou UX Design?

Esses dois termos são suscetíveis a enganação e erros, acreditar que UX Design e a Interface do sistema estão ligados esta em partes correto, pois para ter uma boa experiencia, é necessário uma interface amigável.

Mas achar que UX Design é relacionado só a interface é um erro, quando falamos de interface, precisamos falar também de UI Design, que é responsável por toda a lógica visual do projeto. Como os elementos de interface são de fato algo muito importante para a experiência do usuário, podemos afirmar com propriedade que o UI Design é um dos muitos elementos que compõem o UX Design.

Usabilidade

A usabilidade é um ponto muito importante na UX, diferentemente do que as pessoas acreditam, ela não está só relacionada com a facilidade que o sistema traz, de fato esse é o ponto menos importante. O foco principal é como ele pode ser usado. Todo produto no mercado hoje em dia precisa de um motivo para existir, logo se ele não tem motivo ele desaparece.

Para ter um sistema de sucesso, o desenvolver ou engenheiro de software precisa usar a empatia para entender o usuário, o desenvolvedor precisa saber que o sistema é feito para uso do usuário. Uma técnica que pode ser usada é definir um avatar, que seria o tipo de usuário que vai usar o sistema, qualificações, idade, conhecimento. A partir dos dados coletados é possível criar um sistema de acordo com o perfil do usuário.

É importante ressaltar mais um vez que a interface também é importante, criar algo simples e intuitivo, que mostre onde o usuário está através de breadcrumbs ou um título que cada página é muito importante.
Mesmo após o sistema criado as melhorias nunca devem acabar, começar com o que tem é o indicado, mas aos poucos ir percebendo em qual nível está a experiencia do usuário,  e criar novas funções para facilitar o acesso a informação e a usabilidade do sistema.

Conclusão

User Design chegou a mercado como uma forma de reunir informações de todos os aspectos  entre a interação do usuário com a empresa, sistema ou produto. Ele sem dúvida estuda todas as maneiras de como deixar o usuário satisfeito de uma forma que atenda todas as necessidades e interesses do mesmo. Ressalto que a verdadeira experiência do usuário não é somente oferecer ao cliente o que ele quer, muito pelo contrário, o cliente normalmente não sabe o que procura, então é responsabilidade da empresa perceber da melhor maneira as necessidades reais do usuário e deixa-los satisfeitos com a experiência obtida.

Esse conceito de perceber a necessidade do cliente, sem que ele fale, ou mesmo saiba o que precise, deve ser feito levando em consideração aspectos como a facilidade de uso, eficiência e utilidade para propor a melhor solução para um determinado problema. Para resolver e criar soluções para o problema, é necessário que a empresa tenha uma visão ampla de todas as possibilidades e disciplinas que envolvem o problema.

Portanto, seguindo todas essas diretrizes, é possível trabalhar o lado emocional do usuário, melhorar a sua experiência com o sistema, e assim garantir o sucesso do projeto.

Fonte: https://www.raffcom.com.br/blog/o-que-e-ux-design/

Autor: Felipe Tartarotti

 

O que é e quais os impactos da Computação Quântica

A Computação Quântica, sendo desenvolvida com base nos princípios da Mecânica Quântica, tem como seu principal objetivo o desenvolvimento do computador quântico, ferramenta que será utilizada no processamento de informações computacionais muito complexas, buscas de informações em bases de dados muito grandes, auxiliar no desenvolvimento de inteligência artificial, e outros processos computacionais aplicáveis. A necessidade do desenvolvimento desta tecnologia surgiu após a identificação de um limite no aprimoramento do desempenho de dispositivos computacionais no cenário da computação atual, o que poderia no futuro restringir o desenvolvimento de novas tecnologias que dependem de um poder de processamento significativo.

Principais diferenças entre Computação Tradicional e Computação Quântica

Na computação baseada na arquitetura de Von Neumann atualmente utilizada por computadores, dispositivos móveis, servidores, e diversos outros dispositivos, a unidade de informação básica é o bit, que pode ser ‘0’ ou ‘1’ a qualquer momento, isto é relacionado aos componentes transistores de um processador que podem estar ligados (‘1’) ou desligados (‘0’) e permite a comunicação do hardware e software. Desta forma na computação tradicional existem apenas duas possibilidades para um dado e qualquer informação produzida será uma combinação destes ‘0’ ou ‘1’.

Contudo na computação quântica a unidade de informação básica é o Bit Quântico ou qubit, que além de poder assumir o estado de ‘0’ ou ‘1’, pode assumir ambos estados ao mesmo tempo graças a propriedade quântica de sobreposição, não se trabalhando mais com transistores, e sim com partículas de átomos como fótons ou elétrons. Para entendimento deste artigo podemos considerar que a propriedade de sobreposição determina que: Até que seja observada ou interagida com o mundo real, uma partícula pode assumir dois estados ao mesmo tempo, ou seja, neste caso ela poderia ser tanto ‘0’ como ‘1’. Porém para entender um pouco mais sobre este assunto busque informações sobre o paradoxo Schrödinger’s cat, também conhecido como o gato de Schrödinger.

Esta habilidade do qubit possuir três valores distintos e o fato de se trabalhar com partículas de átomos, tornam a Computação Quântica muitas vezes mais rápida que a computação tradicional para o processamento de cálculos quânticos e tarefas extremamente complexas como a realização de simulações de moléculas.

Principais impactos da aplicação da Computação Quântica

Abaixo será listado o impacto da Computação Quântica em apenas algumas áreas, porém existem diversas outras áreas que serão afetadas. Adicionalmente especialistas acreditam que com a constante evolução da Computação Quântica, o tamanho do impacto em diferentes áreas dependentes de computação deve aumentar significativamente.

Saúde e Medicina

A Computação Quântica teoricamente facilitará a analise de informações genéticas de pacientes, fornecendo maiores informações para possíveis tratamentos, sendo possivelmente aplicada juntamente com uma Inteligência Artificial para melhorar a eficácia de diagnósticos. Possuindo possível aplicação também no uso de radioterapias para calcular a dose correta de radiação a ser utilizada.

Será possível aplicar a computação quântica em maior escala para o desenvolvimento de novos medicamentos e pesquisa de novos tratamentos, pois computadores tradicionais não são capazes de efetivamente simular completamente determinadas moléculas devido a quantidade de processamento necessária, porém computadores quânticos teoricamente cumprirão esta tarefa efetivamente, auxiliando pesquisadores no entendimento de compostos essenciais a vida, e outros conceitos extremamente importantes para o desenvolvimento de medicamentos como a compreensão do enovelamento de proteínas, bem como a simulação da reação de diversas moléculas em nível atômico.

Machine Learning e Inteligência Artificial

Um dos principais requisitos para o desenvolvimento de inteligência artificial é concentrado em Machine Learning, ou “Aprendizado de Máquina”, que em sua grande parte é utilizar algoritmos em grandes conjuntos de dados para efetuar o reconhecimento de padrões. Com o aumento de poder computacional oferecido pela Computação Quântica será possível comparar conjuntos ainda maiores de dados ainda mais efetivamente, acelerando o processo de Machine Learning e o desenvolvimento de inteligência artificial.

Criptografia

Com os recentes avanços em Computação Quântica, especialistas da área de segurança já estão pesquisando e desenvolvendo novos algoritmos de criptografia chamados de “quantum-proof, quantum-safe ou quantum-resistant”, pois existe um consenso nesta área que computadores quânticos suficientemente grandes poderão quebrar qualquer algoritmo de criptografia de chave pública utilizado atualmente utilizando o algoritmo de Shor.

Porem atualmente não há a necessidade de se preocupar com seus dados, pois os computadores quânticos atualmente construídos ainda não possuem o poder de processamento necessário para efetivamente efetuar esta quebra. Adicionalmente algoritmos de criptografia de chaves simétricas e funções de hash ainda são considerados relativamente seguros contra a computação quântica.

Principais desafios da Computação Quântica

Um dos principais desafios atuais da computação quântica é a preservação da informação quântica, ou seja, garantir que o estado desta informação seja preservado e que ela não sofra alterações indesejadas, como por exemplo possuir seu valor alterado. A empresa D-Wave, fabricante de uma linha de computadores quânticos, conseguiu obter sucesso neste requisito através de um sistema de refrigeração que mantém o processador em um ambiente de -273ºC, combinando isto com múltiplas camadas de blindagem magnética. Adicionalmente existe ainda uma certa dificuldade em trabalhar com Computação Quântica devido a sua inerente complexidade, fazendo-se necessário o uso de algoritmos específicos para computação quântica, o que no presente momento em grande parte dos casos ainda não oferece vantagens significativas em relação a computação tradicional.

Outro problema que vale destaque é o preço de desenvolvimento de computadores quânticos, pois são extremamente caros em sua construção. Contudo empresas como Google já estão experimentando trabalhar com esta tecnologia, e a IBM atualmente disponibiliza um serviço experimental de Computação Quântica na nuvem contando com um processador quântico de 20 qubits.

O fim da computação tradicional?

Um dos maiores mitos existentes sobre a computação quântica é que ela irá substituir completamente a computação tradicional, porém especialistas garantem que isto não é o caso em qualquer realidade próxima. O consenso atual de pesquisadores da computação quântica é que ela será utilizada principalmente em grandes aplicações em nuvem e em laboratórios de pesquisa onde suas grandes vantagens sobre a computação tradicional podem ser efetivamente aplicadas. Para o dia-a-dia de usuários a computação tradicional ainda será superior tanto em termos de custo, quanto em desempenho.

Autor: Marcos P. Garbin

IA aplicada a conhecer o perfil do usuário

A Inteligência Artificial está relacionada à capacidade das máquinas pensarem como seres humanos, de terem o poder de aprender, raciocinar, perceber, deliberar e decidir de forma racional e inteligente. Mas como funciona a inteligência artificial e como ela pode nos ajudar a conhecer o perfil de um usuário em uma aplicação.

Ao pegarmos o smartphone já é possível ver o que a IA pode fazer pelo usuário, no entanto por trás de cada recomendação personalizada, até resultados de pesquisa relevantes, existe uma combinação de tecnologias que fazem a inteligência artificial funcionar, e que estão, por consequência fazendo com que você tenha expectativas mais altas sobre todas as máquinas inteligentes e dispositivos que usa.

As tecnologias por trás da IA

Por trás da IA existem várias tecnologias e conceitos utilizados para realizar o processamento dos dados de forma que tragam o resultado esperado conforme as entradas informadas.

  • Machine Learning: A definição de aprendizado de máquina envolve utilizar-se o mínimo de programação usando dados para aprender. Em vez de programar regras para um máquina e esperar o resultado, com machine learning, conseguimos deixar que a máquina aprenda essas regras por conta própria a partir dos dados alimentados.
  • Deep Learning: Envolve algoritmos mais complexos para imitar nas máquinas a rede neural do cérebro humano e aprender uma área do conhecimento com pouco ou nenhuma supervisão.
  • Processamento de Linguagem Natural: O processamento de linguagem natural utiliza-se do machine learning para encontrar padrões em grandes conjuntos de dados puros e reconhecer a linguagem natural. Um dos exemplos de aplicação do PLN é a análise de sentimento, onde os algoritmos podem processar padrões em postagens de rede sociais para compreender como os clientes se sentem em relação a marcas e produtos específicos.
  • Análise Preditiva: A análise preditiva é uma área avançada em analytics que utiliza dados históricos e algoritmos de Machine Learning para fazer previsões sobre eventos futuros desconhecidos e identificar a probabilidade de resultado.
  • Big Data: Podemos entender como grande quantidades de informações, estruturadas ou não, que são a base para determinar padrões e fazer previsões. É o que alimenta a inteligência artificial e os processos de machine learning, deep learning e PLN.

Redes Neurais Artificiais

O cérebro humano possui cerca de 10 bilhões de neurônios. Um neurônio é capaz de criar até 10.000 sinapses com outros neurônios. Se cada ligação for considerada como um bit de informação binária, tem-se 100 trilhões de bits que corresponde a 11,37 Tb de capacidade máxima de memória.

A maior virtude das redes neurais é a capacidade de aprender a partir dos dados de entrada com ou sem um professor. Esta habilidade tem tornado o uso de algoritmos de redes neurais cada vez mais frequentes.

Figura 1 – Representação de um neurônio biológico

Os principais componentes dos neurônios biológicos são:

  • Os dendritos, que têm por função receber os estímulos transmitidos pelos outros neurônios;
  • O corpo do neurônio, também chamado de soma, que é responsável por coletar e combinar informações vindas de outros neurônios;
  • O axônio, que é constituído de uma fibra tubular que pode alcançar até alguns metros e é responsável por transmitir os estímulos para outras células.

No cérebro humano os sinais gerados caminham pelos axônios. Se esses sinais forem superiores a aproximadamente 50 mV (limiar do disparo), seguem pelo axônio. Caso contrário, são bloqueados e não prosseguem (são considerados irrelevantes). Estes sinais na forma de pulsos, caminham pelo axônio a uma velocidade média de 25 m/s. Não é uma corrente eletrônica, mas uma corrente de íons de sódio e potássio. Antes de um sinal entrar no próximo neurônio, deve passar por uma sinapse, que é o processo de ligação entre o axônio e o dendrito. Se este sinal for superior a certo limite, vai em frente, caso contrário é bloqueado e não segue.

Um neurônio recebe sinais através de inúmeros dendritos, os quais são ponderados e enviados para o axônio, podendo ou não seguir adiante. Na passagem por um neurônio, um sinal pode ser amplificado ou atenuado, dependendo do dendrito de origem, pois a cada condutor está associado um peso pelo qual o sinal é multiplicado, estes pesos são a memória.

Os valores dos pesos são estabelecidos por meio do treinamento recebido pelo cérebro durante sua vida útil, ou seja a memorização.

Figura 2 – Representação de um neurônio artificial.

O neurônio matemático, similar ao natural, recebe um ou mais sinais de entrada e devolve um único sinal de saída, que pode ser distribuído como sinal de saída da rede, ou como sinal de entrada para um ou vários outros neurônios da camada superior.

Uma rede neural aprende acerca de seu ambiente por meio de um processo iterativo de ajustes aplicados aos seus parâmetros livres (pesos sinápticos e níveis de bias). A este processo denomina-se de treinamento. Depois de treinada a rede pode ser utilizada em diversas áreas do conhecimento humano, ainda que na ausência de um especialista.

Treinamento

O algoritmo de aprendizagem é escolhido em função do tipo de rede utilizada e das características dos dados que serão a ajustados. Entretanto, o processo é basicamente empírico. Nesta fase, serão ajustados os pesos das conexões. A tarefa do projetista, então, será a determinação dos valores iniciais dos pesos sinápticos, qual o algoritmo de aprendizagem e qual o tempo de treinamento para o aprendizado da rede. O algoritmo de aprendizagem é escolhido em função do tipo de rede utilizada e das características do dados que serão ajustados. Entretanto, o processo é basicamente empírico.

Teste

Durante esta fase, o conjunto de validação é utilizado para determinar o desempenho da rede com dados que não foram apresentados à mesma. Esta fase é a que verifica se a rede não decorou os dados de entrada e válida a rede para a aplicação desejada.

Perceptron

O perceptron é a arquitetura mais simples, apresentando apenas um conjunto de neurônios de entrada e um conjunto de neurônios de saída, sem haver nenhuma camada de neurônios intermediária. Este tipo de rede neural, embora simples, apresenta problemas específicos, não podendo ser utilizada em aplicações mais avançadas. No entanto para exemplificar será utilizado esta arquitetura.

Cases

No entanto a ideia a ser passada aqui, é que a Inteligência Artificial não é um sistema pronto onde simplesmente solicitamos as saídas necessárias, e sim um sistema complexo onde existe a necessidade de coleta de informações e conhecimento, criação de uma base de dados, treinamento da inteligência artificial que será utilizada para retornar os resultados esperado.

A Inteligência Artificial pode ser aplicada para que seja possível o reconhecimento do perfil de usuários, desde que utilizado uma base de conhecimento, um algoritmo de rede neural onde pode-se efetuar o treinamento dos dados que correspondem a um perfil e a partir daí a rede neural poderia classificar e reconhecer os usuários com ou sem a supervisão de uma pessoa.

A Inteligência Artificial está presente em nosso dia a dia:

  • Aplicações como a Siri utilizam processamento de voz para atuar como assistente pessoal;
  • O Facebook utiliza o reconhecimento de imagem para recomendar marcações em fotos;
  • A Amazon faz recomendação personalizada de produtos utilizando algoritmos de aprendizado de máquina;
  • O Waze prevê as melhores rotas a partir da sua localização com apenas um clique, enquanto carros com piloto automático usam as técnicas de IA para evitar engarrafamentos e colisões;
  • O Google consegue preencher automaticamente as buscas utilizando recursos de inteligência artificial e também prever o que você quer pesquisar com grande precisão.

Outro exemplo interessante é o caso da Netflix que se preocupa bastante com o conteúdo que deve ser sugerido para os seus assinantes. A Netflix sempre manteve o olhar nos algoritmos para gerar conteúdos relevantes, baseados nas preferências de seus usuários e, sobretudo, em ambientes externos, como no caso das redes sociais. Outra métrica usada para direcionar as produções é o estudo do comportamento dos usuários. Ou seja, quantas vezes eles pausam o vídeo, voltam ou mesmo assistem a vários episódios sequencialmente, em um determinado período. E, o quanto este comportamento reflete nas menções nas redes sociais.

O Waze por exemplo, é utilizado por motoristas do mundo inteiro, que se conectam uns aos outros e trabalham juntos para aperfeiçoar sua experiências ao dirigir. Para que o Waze possa fornecer a você com precisão a rota ou mais rápida ou mais curta, de acordo com suas configurações, ele necessita de dados precisos de todos os segmentos e rotas vizinhas. O Waze coleta os dados de cada trecho dirigido com o aplicativo aberto. Na próxima vez que uma via específica for percorrida, o Waze saberá como comparar os dados entre cada rota e saberá sugerir a rota ideal, conforme suas preferências.

Autor: Ramon Barros <contato [@] ramon-barros.com>

Referências:

Livro Inteligência Artificial – Noções Gerais. – 3 imp. / Anita Maria da Rocha Fernandes. – Florianópolis: VisualBooks, 2005.

Livro Redes Neurais: Fundamentos e Aplicações com Programas em C. / Ludwig Jr., O. e Costa, Eduard Montgomery M. Rio de Janeiro: Editora Ciência Moderna Ltda. 2007.

https://www.salesforce.com/br/products/einstein/ai-deep-dive/

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

https://tecnoblog.net/191786/netflix-algoritmo-recomendacoes/

http://revistagalileu.globo.com/Revista/Common/0,,EMI334328-17773,00-ELES+SABEM+O+QUE+VOCE+QUER+VER.html

https://www.techtudo.com.br/noticias/2017/08/como-a-netflix-usa-algoritmos-para-encontrar-a-sua-nova-serie-perfeita.ghtml

http://www.meioemensagem.com.br/home/midia/2016/08/02/stranger-things-e-o-uso-de-algoritmos-pela-netflix.html

https://www.infoescola.com/sistema-nervoso/neuronios/

http://www.gsigma.ufsc.br/~popov/aulas/rna/neuronio_artificial/index.html

UI Design Patterns

O que é UI Design

O User Interface Design (Design de Interface do Usuário), é aonde ocorre a interação e controle de um dispositivo, software, aplicativos ou sites por parte do usuário. Esta interação pode ocorrer através de botões, menus e demais componentes da interface.

Projetos de UI podem ser utilizados para garantir as necessidades que o usuário irá utilizar, e assim criando uma interface que contenha elementos de fácil utilização e acesso, para que seja alcançado um bom nível de experiencia amigável ao usuário e não cause frustações ao utilizar um sistema.

Atualmente é muito importante entender que User Interface não é apenas como uma aplicação se parece e quais cores foram utilizadas para tal processo, também se baseia como uma aplicação irá funcionar e como a interação do usuário será realizada indo além da aparência. Para que possa ser alcançado devemos utilizar a User Experience (UX Design) que por mais que os nomes sejam parecidos são abordagens bem diferentes, já que UX estará relacionado com a experiencias e os sentimentos do usuário e a UI será a maneira com que este usuário alcançara a experiencia.

Diferença entre UI Design e UX Design

UI é quando falamos de criação de interfaces para que o usuário final possa interagir com a aplicação, utilizando as melhores práticas para que seja criado uma interface de fácil utilização e visualização de todas informações.

UX normalmente confundido com UI por serem apresentados juntamente na interface, mas a verdade, é que UX se encaixa na sensação que um usuário irá ter ao navegar por uma interface. Assim a UX é responsável por criar um sentimento bom ao usuário enquanto os mesmos utilizam a aplicação tornando esta experiencia em algo inesquecível. UX também está relacionada com a forma que as funções principais serão utilizadas pelo usuário, usabilidade criação de novos cadastros, e pesquisas.

 

 

Preocupações com a Usabilidade

É necessário que um usuário consiga identificar elementos de interface e o que os mesmos realizam de uma forma clara. Por isso a criatividade ao compor um elemento é muito importante, mas deve se levar em conta os padrões que os usuários já estão acostumados a utilizar e reconhecer facilmente.

Um exemplo fácil de utilizar e a cor de botões que estamos acostumados a utilizar e ver aplicações. Aonde a maioria utiliza a cor verde para ações positivas como salvar, adicionar, e a cor vermelha para ações de negação com deletar. Se trocar as cores para as ações podem acontecer confusões durantes processos simples deixando o usuário frustrado com a situação.

A utilização de palavras abreviadas ou apenas uma palavra em um botão e a utilização de ícones poderá dar ao usuário uma mensagem mais clara e adequada sobre as funcionalidades de tomar uma ação.

Acessos Facilitados

É muito importante que a interface seja redundante, deixando mais de um caminho possível para que o usuário chegue em seu objetivo ou desfaça alguma ação errada, este papel de guiar de forma fácil o usuário é do profissional de UI Design.

Um exemplo que podemos utilizar e a tela de cadastro que muitos sites utilizam quando um usuário arrasta o mouse pra fora da área de trabalho do browser e a janela modal de fotos do facebook, que podem ser facilmente fechadas utilizando um clique em qualquer parte da tela fora do modal, clique na opção fechar no canto superior e ou apertando o ESC do teclado.

Interação com o usuário

A importância de interação com o usuário é muito importante, a interface deve realizar esta tarefa com muita frequência para que seja mostrado informações sobre ações tomadas e os processos realizados pela aplicação. Exemplos muito simples são as barras de carregamento que podem deixar o usuário esperando o seu carregamento ou finalizar um processo por não ser se o mesmo será carregado.

Prototipagem

A utilização de protótipos, rascunho e wirefrmaes é muito comum para o profissional de UI, para que possa ser desenhado a estrutura inicial do projeto. É a parte essencial, pois através da prototipagem começara a ter uma visão geral do layout e das hierarquias de todo conteúdo da aplicação, a disposição dos elementos da interface e pontos de interação.

 

 

Para trabalhos com HTML, CSS e aplicativos mobile não é aconselhado a criação de interfaces sem que antes o cliente tenha aprovado todo projeto, pois para realizar modificações torna-se muito trabalhoso e demorado.

Referências

Lovi, Rafael. O Que é User Interface (UI)?. Disponível em: < https://www.raffcom.com.br/blog/o-que-e-ui/>. Acesso em  25 abril de 2018.

As Diferenças entre UI Designer e UX Designer. Disponível em: < http://multiad.com.br/design/as-diferencas-entre-ui-designer-e-ux-designer/>. Acesso em 27 abril de 2018.

Rodrigues, Raianne. 5 Dicas: UX e UI design. Disponível em: < https://blog.novatics.com.br/5-dicas-ux-e-ui-design-d787ef46b6b8 >. Acesso em 27 abril de 2018.

Matiola, Willian. O Que é UI Design e UX Design?. Disponível em: < http://designculture.com.br/o-que-e-ui-design-e-ux-design>. Acesso em 28 abril de 2018.

Matiola, Willian. O Que é UI Design e UX Design?. Disponível em: < http://designculture.com.br/o-que-e-ui-design-e-ux-design>. Acesso em 28 abril de 2018.

Análise de dados: como priorizar as informações mais importantes?

Seja pelo escândalo do Facebook e Cambridge Analytica, pelo nosso mapa traçado detalhadamente pelo Google Maps, ou simples sugestões de compras relacionadas em um e-commerce. Nós temos nossos dados coletados e analisados diariamente usando para o bem, e inevitavelmente, para o mal.

Produzimos uma infinidade de dados, diariamente, deixando cliques e rastros de navegação em todo o universo online. Se observados isoladamente, esses dados podem parecer irrelevantes. Mas através de conceitos da Inteligência Artificial como Machine Learning e outros métodos para a análise de dados, eles já se tornaram um divisor de águas para o avanço do conhecimento em todas as áreas de nossa sociedade. Desde a medicina até à música, do Facebook ao mundo real.

BIG TRASH DATA:

Big data é lixo. Sim, é lixo como aquele pedaço de carne sobrado que vai pro lixo pois não sabemos como reutiliza-lo e fazer um delicioso carreteiro, por exemplo.
Sem metáforas, big data nada mais é do que toda a informação que recebemos mas que involuntariamente deixamos passar, pois não temos capacidade de processá-la e armazená-la no nosso cérebro. Mas a diferença, é que no mundo digital, toda essa informação que produzimos, fica armazenado, e se analisada com atenção, pode ser o estopim para uma revolução na inovação mundial. Desde a sugestão de publicações no Facebook até a descoberta de cura para diversas doenças.

ANALISAR. MAS O QUE ANALISAR?

Quem procura, acha. Mas precisamos saber o que procurar.
Na visão de Steven D. Levitt (Freaknomics), “a economia é uma ciência com instrumentos para chegar a respostas, mas sofre uma tremenda escassez de perguntas interessantes”. O grande sucesso para criarmos relevância em qualquer pesquisa é saber o que realmente queremos saber(!). E para saber, precisamos viver. Entender o contexto do que queremos fazer é essencial, precisamos vivenciar o universo que a pesquisa se baseará, entender o mecanismo e refletir, para então, criarmos as perguntas certeiras e respondê-las através de dados.
Economia de tempo nem sempre é gastar menos tempo.

AFINAL, O QUE É ECONOMIA?

Muitas vezes, pensamos em economia e logo nos vem à mente inflação, taxa de juros, cotação do dólar. Mas a verdade é que a economia vai muito além disso. Ela não se baseia apenas em números, mas sim em comportamento. Ela pode responder perguntas como: “o que mata mais, armas ou piscinas?”, “crianças que têm livros em casa têm desempenho melhor que as outras?”. Para isso, precisamos mergulhar no universo de nossas perguntas e conhecer o contexto.

CAUSALIDADE x CORRELAÇÃO:

Este é um ponto crucial na análise de dados. Precisamos tomar cuidado com nossas análises para não confundirmos causalidade com correlação.

Mas afinal, o que é causalidade e correlação? Correlação é a relação ou semelhança entre duas coisas. Apenas isso. Nem toda correlação acarreta em uma causalidade. Sabe por que? A causalidade requer que, por exemplo, a variável X seja causa da variável Y, e a variável Y é consequência da variável X. Ou vice-versa.

Temos o clássico exemplo da correlação de que “no verão, as mortes por afogamento crescem de acordo com a elevação no número de consumo de sorvete”. Quantos pais não se preocuparam e alertavam os filhos para nã tomarem sorvete na beira da piscina? Essa correlação existe, e realmente no verão, o número de mortes por afogamento aumenta e a venda de sorvetes também. Mas não existe causalidade. Uma coisa não causa a outra. No verão, as pessoas vão mais à piscinas e também tomam mais sorvete. Mas o que mata não é o sorvete, é o nado. A causalidade é o aumento da temperatura.

 

Portanto, a análise de dados é um processo tão simples de ser absorvido, porém complexos de se fazer. Não pelo domínio técnico nem nada, mas sim pela imersão no universo a ser analisado, a fim de obtermos as melhores perguntas e utilizar a análise como meio para obtermos as respostas.

Raphael Chieli Capellari.
Links relacionados: Freaknomics – Ed. Campus -12/04/2005