Page 1

Novembro 2016 / Ano 05 / Edição 20 We are developers

A FEROCIDADE DA ENGENHARIA

R$24,00

APLICADA AO MERCADO DE SOFTWARE

ENTREVISTA

PERFORMANCE MOBILE

COMUNIDADES

FABIO HOFNIK, MAURO PICHILIANI E PEDRO KAYATT E O MERCADO DE REALIDADE VIRTUAL

A REVOLUÇÃO DO CONTEÚDO MOBILE

COMUNIDADES INTERESSANTES PARA VOCÊ CONHECER!

#pag11

#pag19

#pag39


// Expediente

TIAGO BAETA Publisher RINA NORONHA (MTB 2759-ES) Editora/Jornalista Responsável FABIO LODY Direção de Arte / Diagramação ALEX LATTARO / MARIANA ANSELMO / NATHÁLIA TOREZANI

Revisão COLABORADORES Andréa Paiva, Breno Oliveira, Bruno Paz, Bruno Rodrigues, Diego Eis, Djalmo Aquino, Fabio Lody, Fernando Rychlewski, Kemel Zaidan, Leandro Vieira, Marcos Ferreira, Mário Rachid, Reinaldo Ferraz, Ricardo Ogliari, Rodrigo “pokemaobr” Cardoso e Thiago Barradas. ESKENAZI INDÚSTRIA GRÁFICA Gráfica GRUPO IMASTERS Organização > 1000 exemplares > ISSN 1981-0288

Rua Claudio Soares 72, conjunto 1302, Pinheiros - São Paulo/SP CEP: 05422-030 Telefone: (11) 3063-5941 www.imasters.com.br/revista redacao@imasters.com.br Twitter: @iMasters Facebook: /PortaliMasters Os artigos assinados são de responsabilidade dos autores e não refletem necessariamente a opinião da revista. É proibida a reprodução total ou parcial de textos, fotos e ilustrações, por qualquer meio, sem prévia autorização dos autores ou do editor da revista.


// Editorial

Chegamos a última edição do ano. Uma edição tão especial para nós, que será lançada no InterCon 2016, o nosso maior evento, que neste ano volta as suas origens, com foco no desenvolvedor. Será um evento de dev para dev, assim como esta edição da Revista iMasters. Para criarmos ainda mais a experiência de inovação tecnológica, que é o foco do InterCon 2016, esta edição traz uma entrevista sobre a realidade virtual com três grandes feras do mercado: Fabio Hofnik, Mauro Pichiliani e Pedro Kayat. Ademais, esta edição também aborda temas como: CSS, APIs, desenvolvimento de conteúdo mobile, IoT, Smart Cities, gestão, desenvolvimento seguro no e-commerce, elastic search, ferramentas opensource, segurança, presença digital, cloud computing, kafka, web semântica e muito mais! Para fechar o ano com chave de ouro, até os devs e designers do iMasters quiseram participar dessa edição. Temos o Rodrigo PokemaoBr falando sobre o desenvolvimento de games no Brasil. Já Fernando Rychlewsky abordou a computação cognitiva e Fabio Lody desmistificou o e-sports. Na matéria de capa, tratamos sobre a ferocidade do desenvolvimento da engenharia de software. Ah, não perca também nossa área de comunidades, que está recheada de exemplos bacanas e inspiradores que você precisa conhecer! Espero que aproveitem o conteúdo que foi carinhosamente desenvolvido para vocês.

Alex Lattaro Líder de conteúdo - Grupo iMasters www.imasters.com.br | redacao@imasters.com.br


WE ARE ALL #MADEOFBITS Somos o BIT, a área de tecnologia e serviços digitas da B2W e desenvolvemos os sites da maior empresa de e-commerce da América Latina.

Queremos os melhores nos seguintes perfis:

Dev BACK END

Dev FRONT END

Data Scientist Machine Learning

Data Scientist Op. Researcher

Dev Mobile Android

Dev Mobile iOS

Dev Big Data

http://somos.b2wdigital.com/bit


Sumário // 6

Comunidade Comunidades interessantes para você conhecer!

39

CAPA A ferocidade da engenharia evoluída pelo mercado de software

50

11

Entrevista

19

Performance Mobile A revolução do conteúdo mobile

Fabio Hofnik, Mauro Pichiliani e Pedro Kayatt e o mercado de realidade virtual


br.bluehost.com/cloud

SOLUÇÕES EM NUVEM HOSPEDAGEM PODEROSA, SEGURA, E MAIS SIMPLES DO QUE NUNCA

R$

39,99 /mês Por apenas:


Sumário // 8

11.

17.

Entrevistas Fabio Hofnik, Mauro Pichiliani e Pedro Kayatt e o mercado de realidade virtual

Reinaldo Ferraz - Por dentro do W3C Variáveis no CSS

19.

23.

Leandro Vieira Performance em mobile A revolução do conteúdo mobile

Ricardo Ogliari - Mobilidade é tudo

25.

Internet of Things, Array of Things, Smart City e Criatividade

28.

Andréa Paiva - Gestão de riscos Gerenciando riscos

Rodrigo “pokemaobr” Cardoso - Games

33.

As faces do desenvolvimento de jogos no Brasil

39.

Bruno Paz - Segurança Construindo um checkout transparente seguro em ambientes não-seguros

45.

Comunidades Comunidades interessantes para você conhecer

48.

Thiago Barradas - Servidor de busca Desmistificando o ElasticSearch: Mapping & Analyzers

Kemel Zaidan - Código Aberto

50.

Sistemas operacionais alternativos

Alex Lattaro - Capa A ferocidade da engenharia evoluída pelo mercado de software


Sumário // 9

55. Marcos Ferreira - Segurança

59.

Race condition em aplicações web: você está seguro?

Bruno Rodrigues - Sr. Conteúdo

63.

Presença digital: 20 coisas que aprendi em 20 anos

Mário Rachid - Cloud Computing

66.

Serviços de infraestrutura, qual a sua necessidade?

7Masters

68.

Encontro iMasters de especialistas

Breno Oliveira Arquitetura de mensageria

70.

Você sabe como distribuir melhor com Kafka?

Fabio Lody Criatividade Tecnológica

74.

E-sports e os jogadores profissionais de videogame

Diego Eis Web semântica O problema da web atual e a Web Semântica

78.

83.

Fernando Rychlewski Computação Cognitiva

Djalmo Aquino - APIs

Computação Cognitiva: Nossa Auto-Evolução Programada?

Diferencie a sua aplicação com APIs que gerenciam linhas telefônicas

85.

Redação iMasters - Por aí Fazendo a internet do Brasil pelo mundo


Entrevista

//

11

Realidade virtual: uma realidade atual Por Fernando Rychlewski, para Revista iMasters Imagine estar em um ambiente, cidade, país ou planeta diferente do qual você se encontra nesse momento. Quão vastas, empolgantes e curiosas são as possibilidades? Na história da humanidade, desde os primórdios, a imaginação nos leva a lugares inalcançáveis ou irreproduzíveis através de pinturas, gravuras e ilustrações diversas; e, pela primeira vez, nossa curiosidade incurável se encontrou com nossos cientistas incansáveis no baile das invenções. Essa dança nos possibilitou unir nosso âmbito exploratório com a alta tecnologia e concretizar tudo que nossa imaginação nos permitir. Desde atividades recreativas, como games VR e Filmes 360°, passando pela educação com expedições em outras eras e ambientes (submarinos ou espaciais), poupando vidas com treinamentos militares e salvando vidas com simulações médicas, cada vez mais a realidade virtual e a realidade aumentada se tornam presentes no nosso dia-a-dia. Em uma era em que estar fisicamente presente no ambiente já não é mais relevante, chamamos três especialistas brasileiros, gurus da realidade virtual para nos passar um pouco de sua vasta experiência e riquíssima opinião na

área, dando o caminho das pedras para quem quer ingressar nesta, que é uma das mais promissoras áreas. Veja, a seguir, a opinião de Fabio Hofnik, pesquisador e entusiasta de imersão narrativa e realidade virtual; Mauro Pichiliani, profissional independente de softwares, e Pedro Kayatt, co-fundador da VRMonkey. Revista iMasters: Como você entrou na área de realidade virtual? Hofnik: Pesquiso o assunto desde 2012 e com o crescimento da tecnologia, a partir do mesmo ano, mergulhei de cabeça para entender o que estava sendo produzido em termos de conteúdo imersivo e tecnologias de gráficos e sensores. Pichiliani: Entrei na área através de alguns projetos de interação em interfaces e visão computacional que eu já tinha desenvolvido. Estes projetos podem ser adaptados para realidade virtual para permitir mais interação do usuário com o que é apresentado visualmente para ele. Kayatt: Comprando o DK1 da Óculus. Revista iMasters: Foi difícil esta imersão? Hofnik: Ainda está sendo um enorme desa-


Entrevista

//

12

fio para todos os envolvidos. Hoje estamos no ano zero da realidade virtual no mundo todo, um ano que não necessariamente tem 365 dias, e sim um período onde formas de produção técnicas e linguagem narrativa ainda são experimentos, não há ainda a forma correta ou final para todos os produtos de realidade virtual.

desafios não foram tão grandes, graças ao grande suporte que as main engines forneceram de forma até rápida.

Pichiliani: Não muito, pois diversos aspectos do que já é feito em realidade aumentada e interação podem ser adaptados para projetos de realidade virtual.

Hofnik: O mercado brasileiro nunca esteve tão equilibrado com o resto do mundo como com a realidade virtual. Na época do surgimento da web, ainda havia problemas diversos com linhas telefônicas no Brasil, a banda larga demorou (e quando chegou, chegou cara), então, ficamos atrás por algum tempo de outros países mais avançados. Com mobile foi um pouco menos pior, mas os preços dos aparelhos e as dificuldades com conexão ainda nos bloqueia um pouco. Claro que temos criatividade e técnica suficiente para desenvolver conteúdo e tecnologia como qualquer outro país, por isso com VR estamos dando passos largos tanto no mercado de games, quanto em produção audiovisual.

Kayatt: Na verdade, não. Revista iMasters: Quais os desafios e dificuldades? Hofnik: Em termos de narrativas imersivas, além dos games que já tem um caminho sendo seguido, os filmes 360 graus ainda estão presos tecnicamente em vários aspectos que devemos superar em breve. Em termos de linguagem, ainda não há um consenso entre os produtores, o que é bem interessante de ser estudado e participar desse momento. Tanto com games ou com filmes, há uma parcela da audiência que ainda não se sente bem com as experiências em realidade virtual e isso é um obstáculo que deve ser superado com evolução tecnologia dos devices Pichiliani: Certamente, a latência de processamento foi um dos principais desafios. A necessidade de realizar diversas operações muito rapidamente (algo em torno de 16 milisegundos) para conseguir fazer com que a experiência geral seja crível é muito importante, pois se pensarmos em termos de fps (frames por segundo) é realmente muito complicado lidar com algo em torno de 60 fps. Kayatt: Como desenvolvedor de games, os

Revista iMasters: O Mercado Brasileiro está pronto?

Pichiliani: Acredito que ainda não, pois tanto em termos de vídeo, áudio, interação e outros aspectos, ainda existe muita necessidade de conhecimento por parte dos desenvolvedores. Em relação aos usuários, também acredito que ainda haja muito espaço para que a tecnologia se popularize e seja amplamente utilizada. Kayatt: Não, infelizmente o mercado brasileiro é sempre atrasado em questão de adoção de tecnologias. Revista iMasters: E a remuneração? Hofnik: Apenas segue o padrão e o câmbio do Brasil, não acrescento nada. Pichiliani: Esta sempre é uma questão


Entrevista

complicada, porém diversos projetos relacionados a publicidade, marketing, games e outras áreas estão investindo um pouco. Desta forma, os profissionais acabam sendo melhor remunerados, pois existe pouca gente especializada no conjunto de tecnologias para desenvolver VR. Kayatt: Não é muito boa, não... Revista iMasters: Desenvolvimento nativo ou framework? Hofnik: Ambos os casos funcionam para uma plataforma ainda em total mutação. As engines de hoje, amanhã podem ser outras. Mas acredito que não seja a melhor pessoa para responder isso. Pichiliani: Acredito que isso depende muito do projeto e do público alvo. Certamente, ambas as opções possuem vantagens e desvantagens e é preciso conhecê-las bem para, só então, decidir qual é melhor para cada projeto. Kayatt: Sempre frameworks. A roda não precisa ser reinventada. Revista iMasters: Realidade virtual ou realidade aumentada? E por que? Hofnik: Eu sou apaixonado pelas duas! O VR te tira do mundo real completamente, te coloca no fundo do mar, no passado com dinossauros ou em Marte. Isso não tem precedentes! Nenhum outro suporte te traz essa experiência, a não ser uma recriação offline com cenografias, efeitos especiais e atores. A AR traz o mundo digital para o nosso mundo real, projetando holografias na nossa frente e isso transforma totalmente nosso ambiente real e aumenta nossas possibilidades de imersão. Não tenho como escolher nenhuma delas como preferida, mas aposto muito na chamada reali-

//

13

dade mista, que, de alguma forma, vai unir e extrair o melhor de cada. Aí, sim, criando algo nunca pensado antes. Pichiliani: Na minha opinião, elas são complementares; uma vez que sucessos como o Pokemon Go não ofuscam as experiências em realidade virtual. De fato, é possível explorar muito estas opções em diversos cenários, contextos e área de aplicação. Kayatt: Realidade Virtual, com certeza! A resolução tecnológica da RA ainda não é boa o suficiente para trazer a imersão e a interação desejada, já VR está entregando isso. Revista iMasters: Cite um potencial social para a realidade virtual/ aumentada. Hofnik: Estou muito interessado nas plataformas de simulação de ambientes no VR. Há alguns chats onde você encontra amigos e desconhecidos em ambientes 3D que vocês nunca poderiam estar no mundo real. Isso aproxima as pessoas de uma maneira nunca imaginada e tem potencial de expandir para, por exemplo, turismo virtual, educação a distância etc. Isso já acontece e vai expandir muito em breve. Pichiliani: A realidade virtual possui um potencial grande de transformação social quando aplicada na educação. Somente o fato de poder ‘transportar’ o usuário de forma imersiva para lugares que ela nunca poderia ir fisicamente já é muito poderoso. Quanto a realidade aumentada, acredito que diversas opções para sobrepor camadas informativas podem ajudar muito no lado social, especialmente quando elas permitem o empoderamento e a autonomia das pessoas para realizar tarefas que elas hoje necessitam de alguma instituição, empresa ou órgão do governo.


Entrevsta

//

14

Kayatt: Reuniões virtuais, treinamentos, qualquer coisa que você já sonhou! Revista iMasters: Quais seus 3 HMDs (óculos de realidade virtual) preferidos? Hofnik: Na minha opinião, a ideia e projeto do Cardboard da Google é o mais incrível, por ter empoderado qualquer um que tenha um celular minimamente decente a poder experimentar realidade virtual. Isso inspirou todo o mercado a criar HMDs diversos que vemos hoje. Indo ao outro extremo, eu sou fascinado pelo HTC Vive pela sua qualidade ótica e de precisão nos sensores e controles. A experiência é quase perfeita, mas isso se deve também aos excelentes conteúdos que encontramos na plataforma dele. E, por fim, estou esperando muito ansioso pelo Daydream, o projeto que evolui o Cardboard, também do Google. O Daydream vai ser um padrão de device de VR que está quase para ser lançado pelas mãos dos fabricantes de celulares mundo afora. Cada fabricante vai lançar a sua versão que vai ser um modelo de plástico bem acabado de um HMD para celulares específicos (com certificação Daydream, com requisitos e especificações determinadas pelo Google) e um controle com sensores de movimento e posicionamento que vai, de novo, revolucionar experiências de VR com celulares. Eu aposto demais nesse. Pichiliani: Oculus Rift, Samsung Gear e HTC Vive. Kayatt: HTC Vive, Gear VR e Oculus Rift.

Revista iMasters: Algumas palavras de incentivo para quem quer entrar na área de VR. Hofnik: Não se apegar às tecnologias de hoje, nem às linguagens improvisadas que temos hoje. Eu vim da área de Cinema, onde desde sua invenção segue um mesmo padrão de roteiro e montagem, por exemplo. A realidade virtual está mudando tudo isso e nada hoje é certo ainda. Mas tudo é muito promissor em termos de conteúdo e, claro, de mercado. Pichiliani: A VR é uma área repleta de desafios, porém, também existem muitos benefícios e coisas legais que podem ser feitas. Não desistir logo de cara, procurar recursos, alternativas, ter perseverança e determinação são atitudes muito importantes, principalmente quando não é possível trabalhar diretamente com os HDMs, hadwares para interação ou softwares especializados voltados para a VR. Kayatt: Bem-vindo ao futuro!


Drops do mercado

15

Pathfinder: o aplicativo que compreende a jornada do cliente São inúmeros os motivos que levam o consumidor a buscar ajuda nos canais de atendimento das empresas. Sua primeira opção é o FAQ, onde há respostas para os questionamentos mais frequentes. A central de atendimento somente é acionada se não houver um tópico específico capaz de sanar esta dúvida. Entretanto, o agente pode sugerir a leitura do conteúdo já explorado, o que gera irritação no cliente. Para evitar esse tipo de situação e proporcionar a melhor experiência ao consumidor, a Zendesk, companhia que aproxima empresas e clientes por meio de uma plataforma de atendimento omnichannel na nuvem, desenvolveu o Pathfinder. O aplicativo, integrado à plataforma de atendimento, dá suporte à equipe, com conhecimento e contextualização dos caminhos já percorridos pelo consumidor. Desse modo, é possível personalizar as interações, solucionar os problemas com maior eficiência e aperfeiçoar a experiência do usuário.

35% dos acessos a loja virtuais são mobile: você está pronto?

Nova hospedagem da DialHost traz Certificado SSL Grátis

Segundo a 33ª edição do Webshoppers, 35% dos acessos as lojas virtuais no Brasil são mobile. O share desse mercado, que já foi de 2,2% em 2012, chegou a 12% em 2015. Profissionais de marketing devem estar atentos a essa realidade e desenvolver estratégias com foco na conversão desse cliente. Pensando nisso, a Site Blindado, fornecedora de segurança para lojas virtuais, acaba de inovar mais um vez e traz ao mercado uma nova forma de utilização do já consolidado selo Site Blindado. Trata-se do selo flutuante mobile. Embora ele esteja atrelado a um importante serviço de segurança - que atesta que a loja passa por vários testes diários, e que corrige todas as vulnerabilidades encontradas - o usuário que busca um ambiente seguro e de credibilidade nas compras no desktop, também vai buscar uma experiência segura no mobile. Quem conseguir atingir esse consumidor, tende a sair na frente e aumentar a sua conversão de vendas.

A DialHost lança novos planos de hospedagem compartilhada com certificados SSL grátis, para atender novas demandas de segurança no tráfego de dados na internet. A proposta da empresa é facilitar o uso desta segurança, com uma ferramenta totalmente automatizada, que ativará e renovará os certificados, utilizando a tecnologia do Let’s Encrypt™. Ela ainda sai na frente, oferecendo espaço para e-mails de até 15GB por conta. Segundo o diretor de operações, Flávio Cardoso, estas ações são fruto da evolução nas necessidades dos clientes de hospedagem compartilhada atuais. “Com a evolução da internet nossos clientes buscam cada vez mais um serviço seguro, com bons recursos e principalmente que trabalhe de forma transparente”. Os planos já estão disponíveis para contratação através do site da DialHost. Com planos a partir de R$9,90/mês. Aproveite para ter uma hospedagem que garante a segurança nos dados trafegados pelo seu site.

MundiPagg anuncia integração com Magento O gateway MundiPagg, que já transaciona 40% dos pagamentos nas lojas virtuais brasileiras, anuncia a o lançamento do módulo de integração com Magento. Por meio deste plugin, os e-commerces que utilizam a plataforma passam a contar com uma variedade de meios de pagamento: boleto, débito e crédito, além de suporte técnico completo. O módulo 2.7.1 da MundiPagg está disponível para a versão 1.9 da plataforma Magento, e pode ser instalado pelo próprio gestor da loja por meio do Magento Connect. A ferramenta vem pré-configurada, mas o e-commerce pode customizar o plugin em poucos cliques, selecionando os meios de pagamento a serem aceitos, quantidades de parcelas e até o fingerprint – padrões de uso do consumidor – para lojas que utilizam soluções avançadas de antifraude. Além disso, o módulo suporta a retentativa offline, recorrência e divisão da compra em diferentes cartões, diferenciais da MundiPagg que aumentam a conversão do lojista.


17 // Por dentro do W3C

Variáveis no CSS hoje Por Reinaldo Ferraz, Especialista em Desenvolvimento Web do W3C Brasil

Em um passado não tão distante, pudemos presenciar como o HTML5 incorporou recursos de outras tecnologias em seu padrão. Podemos citar os exemplos simples, como verificação de campos obrigatórios de formulários (que antes eram feitos com JavaScript) e vídeos nativos na Web (adeus RealPlayer e Flash).

Desde 2012 o Grupo de Trabalho de CSS do W3C vem trabalhando para a utilização de variáveis dentro do CSS. Atualmente, a documentação “CSS Custom Properties for Cascading Variables Module Level 1” (https://www.w3.org/TR/css-variables/), que especifica o uso de variáveis no CSS, está como W3C Candidate Reccomendation.

Esse tipo de incorporação já vem sendo feita também pelo CSS. Basta lembrar que hoje não declaramos mais atributos para formatação visual no HTML e que animações que antes eram feitas em Flash ou JavaScript, hoje podem ser feitas com CSS puro.

Apesar de ser uma discussão razoavelmente antiga (e já existirem diversos artigos abordando o assunto), a implementação de varáveis nativas do CSS nos navegadores* começou há pouco tempo:

Apesar da evolução constante do CSS, certos recursos se fazem necessários para ajustes específicos que ainda não foram implementados na documentação ou não foram amplamente suportados por navegadores. Para ajudar nesse trabalho, surgiram extensões como SASS, que possibilitam, por exemplo, utilizar variáveis na construção das folhas de estilo.

• No Firefox começou a ser implementada na versão 31 (lançada em julho de 2014); • No Chrome foi implementada na versão 49 (lançada em março de 2016); • No Safari em sua versão 9.1 (lançada em julho de 2016); • Nas versões mais recentes da maioria dos navegadores de dispositivos móveis.


18 // Por dentro do W3C

• Por enquanto Internet Explorer e Edge ainda não implementaram esse recurso. * Dados obtidos do CanIUse (http://caniuse.com/#feat=css-variables). Seu uso é muito simples. Utilizando a notação var() é possível selecionar uma variável já declarada, como no exemplo abaixo:

As folhas de estilo também têm acompanhado a evolução da Web e as suas necessidades. São essas necessidades que geram produtos como SASS e LESS e que podem levar seus recursos que facilitam a vida do desenvolvedor para a raiz do CSS. E são essas demandas que contribuem para as discussões e evoluções dos padrões dentro do W3C.

:root { --main-color: #06c; } #foo h1 { color: var(--main-color); } Nem preciso dizer que a grande vantagem aqui é não ter mais que declarar diversos valores no meio do código. A declaração pode ser feita em qualquer seletor, mas fazendo em :root ela serve para o documento inteiro. Os seletores específicos podem ajudar em diversos cenários, como por exemplo na internacionalização do conteúdo (identificando o idioma do documento ou do elemento), como no exemplo abaixo: a:lang(en) { --external-link: “external link”; } a:lang(pt-br) { --external-link: “link externo”; } a[href^=”http”]:after { content: “ (“ var(--external-link) “)”; } Fazendo dessa forma, quando o idioma do elemento de âncora for declarado os links externos receberão o complemento de informação de “link externo” no seu respectivo idioma (este e outros exemplos estão disponíveis na documentação do W3C).

REINALDO FERRAZ Reinaldo Ferraz é especialista em desenvolvimento web do W3C Brasil. Formado em Desenho e Computação Gráfica e pós graduado em Design de Hipermídia pela Universidade Anhembi Morumbi, em São Paulo. Trabalha há mais de 12 anos com desenvolvimento web. Coordenador do Prêmio Nacional de Acessibilidade na Web e do Grupo de Trabalho em Acessibilidade na Web e representante do W3C Brasil em plenárias técnicas do W3C. @reinaldoferraz


19 // Performance em mobile

A revolução do conteúdo mobile Por Leandro Vieira, Fundador da Apiki Está em curso uma explosão mobile relevante e, com ela, uma revolução dos conteúdos disponibilizados em plataformas móveis em três grandes distribuidoras: Facebook, Google e Apple. A primeira, através da sua grande e influente rede social; a segunda, através do seu buscador largamente utilizado e responsável por boa parte do tráfego de inúmeros publicadores de conteúdo; e a terceira, com seu universo poderoso e repleto de usuários espalhados pelo globo. O consumo de informação há tempos é pauta de várias discussões, mas, atualmente, a que ganha muita atenção é o consumo de informações através dos dispositivos móveis. No Brasil, por exemplo, há mais aparelhos do que habitantes, e alguns comportamentos vêm ganhando força e sendo representativos: • Mensageiros mobile: os aplicativos de mensagens são utilizados por 43% da população; • Vídeos no mobile: 35% da população consumem vídeos em seus dispositivos; • Games no mobile: os jogos vêm ganhando cada vez mais jogadores no ambiente móvel, sendo atualmente 21% da população; • Banco no celular: as transações bancárias já são realizadas por mais de um quarto, 28%, da população;

• Serviços de mapas mobile: os aplicativos de mapas ganham cada vez mais adeptos 33% é a representação atual. Consumir informação em tamanhos de telas variados, com conexões instáveis e uma impaciência sem tamanho por parte dos usuários exigiu um esforço muito grande dos gigantes do setor para melhorar a experiência dos seus usuários ao consumirem informações em dispositivos móveis a partir do seu ambiente. Eles perceberam que os usuários querem ter acesso ao conteúdo instantaneamente, uma experiência centrada na informação, sem firula, sem muitos anúncios e popups para lhes convencerem a serem leads do canal em questão. Publicadores de conteúdo que adaptam suas plataformas para fazer uso de novas tecnologias ganham maior relevância por parte dos algoritmos desses sistemas e maior engajamento por parte dos seus usuários, uma vez que o conteúdo carrega rápido e a informação é disposta sem distração e direto ao ponto, algo essencial para pessoas que consomem cada vez mais as informações espalhadas pela Internet. O Facebook adota o Facebook Instant Article (FBIA); já o Google encabeçou uma iniciativa open source através do Acelerated Mobile Pages (AMP), utilizado em seu mecanismo de busca e outros serviços, e foi acompanhado por outras plataformas relevantes, como Twitter, LinkedIn e Pinterest. Já a Ap-


20 // Performance em mobile

ple, em uma atualização do iOS, substituiu o aplicativo Newsstand pelo News e originou o Apple News, que está disponível para iPhone e iPad. As três plataformas apresentaram soluções iguais em conceito, mas cada uma tem seu propósito e formato. Todas transformam conteúdos de blog ou notícias de portais, por exemplo, em conteúdos estáticos que são carregados rapidamente no mobile e com uma experiência “app-style” dentro do resultado de buscas do Google (se adotado o AMP), no aplicativo do Facebook (se aplicado o FBIA), ou no aplicativo News da Apple e, por conseguinte, em sua grande massa de smartphones e tablets. As tecnologias são implementadas nas páginas web através da adição de tags no cabeçalho das páginas para que os mecanismos possam reconhecer e se beneficiar do conteúdo. Elas também informam e direcionam o comportamento dos robôs, que leem e consomem os dados; faça um paralelo com as diretivas do robots.txt que instrui os robôs de busca. E, uma vez implementado, é necessário se inscrever em seus programas e submeter os conteúdos; faça um paralelo, por exemplo, com o envio do sitemap do seu site através do Google Search Console. Conquistar um alcance orgânico dentro da maior rede social do mundo tem sido cada vez mais um grande desafio; e quanto mais conseguirmos que os conteúdos sejam compartilhados, maior nossa probabilidade de alcançar mais pessoas. Conteúdos publicados dentro do ambiente do Facebook, que adotam o FBIA, oferecem uma facilidade maior de seus usuários compartilharem as informações consumidas e, por conseguinte, um engajamento mais efetivo com suas publicações.

Alcançar as melhores posições no Google é o desejo incansável de publicadores de conteúdo, uma vez que a busca orgânica tem uma representação significativa em seus tráfegos. E o Google já está beneficiando páginas com o AMP implementado. Ter uma combinação de bom posicionamento, experiência centrada no usuário e um CTR relevante nas páginas exibidas no resultado de busca é garantia de tráfego, conversões e uma audiência crescente. O mundo Apple é fechado, e vem se abrindo ao longo do tempo de forma tímida, mas não podemos desconsiderar o potencial que é atingir o universo de usuários de iPhone e iPads em todo o mundo. Considerar a publicação dos conteúdos no Apple News é mais uma alternativa de alcance de audiência e estar presente cada vez mais próximo dos leitores. Considere implementar em suas páginas web as tecnologias das três gigantes - Facebook, Google e Apple - e forneça para sua audiência uma experiência cada vez melhor de leitura e consumo da sua informação, independentemente da plataforma de preferência dos seus usuários e do momento de uso - seja junto aos amigos, na busca por informação ou na cama com a luz dos aparelhos refletindo sobre seus rostos antes de dormir e pela manhã, quando acordam em busca de se atualizarem.

LEANDRO VIEIRA Leandro Vieira é uma das grandes referências de WordPress no Brasil, entusiasta e evangelista da plataforma. Fundador e CEO da Apiki, empresa especializada no desenvolvimento web com WordPress. leandro@apiki.com


Drops do mercado

21

Novas Soluções em Nuvem da Bluehost Brasil A Bluehost, líder em serviços de hospedagem de sites, com mais de 2 milhões de sites hospedados no mundo todo, traz ao Brasil sua avançada tecnologia de Hospedagem em Cloud. A plataforma possui um avançado sistema de hospedagem, com um conjunto de servidores sob uma camada de caching que garante mais velocidade no carregamento de sites, assim como estabilidade/disponibilidade, para nunca deixar seu negócio na mão. É por isso que quase metade dos empreendedores brasileiros já utilizam serviços em nuvem. A solução de armazenamento conta com 3 cópias dos dados. Se houver qualquer falha em disco, uma cópia será automaticamente designada para permanecer funcionando enquanto as demais cópias são reparadas. O painel de controle é simples e intuitivo, o que torna o produto fácil de usar até para empreendedores que têm pouca ou nenhuma experiência em gerenciar hospedagem de sites. Fácil, acessível, rápido e confiável: traga seu site para a nuvem hoje mesmo!

B2W tem vagas abertas para profissionais de tecnologia O BIT, área de tecnologia e inovação da B2W Digital, maior companhia de comércio eletrônico da América Latina, está com vagas abertas para diferentes áreas de atuação. Profissionais Dev Front e Back End, Data Scientist, Mobile e de outras especialidades podem fazer parte de um time disposto a encarar os mais variados desafios, com gente boa que está sempre em busca de trocar informações. Para se candidatar, além de conhecimentos técnicos, os candidatos precisam estar dispostos ao aprendizado e acima de tudo, ter vontade de contribuir no desenvolvimento da melhor experiência para os clientes da Americanas.com, Submarino, Shoptime e Sou Barato. Para isso, contará com um ambiente descontraído e aberto ao aprendizado contínuo. Quer saber mais ou se cadastrar para as nossas vagas? Acesse http://somos.b2wdigital.com/bit/ e junte-se a nós!

Testes e Qualidade de Software caminhando lado a lado com o Ágil Você tem um testador na sua equipe ou quer que alguém do seu time aprenda diversos conceitos ou ferramentas relacionadas a Testes e Qualidade de Software? Confira a série de treinamentos sobre Testes e Qualidade de Software que a Adaptworks possui na modalidade Live Virtual: Agile Testing Automation, Automação de Testes p/ Web c/ Selenium WebDriver – Básico, Automação de Testes p/ Web c/ Selenium WebDriver – Avançado, Automação de Testes para APIs REST com RestAssured, Automação de Testes Mobile para Android com Appium, Automação de Teste com Cucumber e Testes Ágeis com Acceptance Test Driven Development – ATDD. O que é a modalidade Live Virtual? É uma nova forma de ensino da Adaptworks onde você aprende sem se deslocar até um local específico. Em casa ou no trabalho você pode assistir ao treinamento e interagir com o instrutor, tudo isso AO VIVO.

Projetos Especiais em SEO A SEO Master, empresa especialista em otimização de sites (SEO), está desenvolvendo um novo tipo de projeto para clientes. O trabalho consiste em ações que cruzam o potencial do negócio com o volume de buscas por palavras-chave relevantes, durante determinados períodos. O objetivo é aproveitar a sazonalidade de datas importantes para cada tipo de segmento. "A iniciativa nasceu das ações que fizemos durante a Black Friday de 2014 e 2015. Tivemos um aumento surpreendente tanto no volume de visitas quanto nas conversões dos nossos clientes que aderiram ideia”, explica Will Trannin, CEO da SEO Master. O foco da empresa com esses projetos especiais é iniciar uma metodologia de SEO mais ampla e com o intuito de proporcionar uma melhor experiência para os usuários dos sites.


23 // Mobilidade é tudo

Internet of Things, Array of Things, Smart City e Criatividade Por Ricardo Ogliari, Engenheiro Android na BTCjam

O conceito de Internet of Things vem ganhando muito destaque no mundo da computação. Talvez um dos grandes atrativos desse conceito seja justamente a exploração quase infinita da criatividade. Quando unimos eletrônica e software, o número de soluções tecnológicas extremamente interessantes se expande exponencialmente. Existem diversas áreas do conhecimento que se beneficiam da ideia de colocar todas as coisas do mundo em rede, mas uma delas merece destaque. A automação residencial e as Smart Cities, que consequentemente abordam também os Smart Citizens. A possibilidade de tornar objetos inanimados em “seres” inteligentes, e passíveis de coletar informações do mundo à sua volta e compartilhar essas informações com qualquer indivíduo, com o uso de uma API, Restfull e Cloud Computing, traz um mundo de novas soluções. O conceito de Smart City ainda não possui uma definição totalmente fechada e formalizada que possa ser seguida pelos players de mercado e pela academia. Porém, quase todas as definições entendem que é um conjunto de dados gerados pela cidade, como informações sobre consumo de recursos naturais e energéticos, dados governamentais abertos, participação ativa da população e

uso intenso da tecnologia. Aqui vamos focar no primeiro ponto: coleta de informações úteis geradas pela própria cidade inteligente. Basicamente, uma arquitetura bem simplista desse processo envolve os seguintes agentes e processos: uma plataforma eletrônica composta de sensores analógicos e digitais que captam informações do ambiente, sendo que um dos mais usados atualmente é o Arduino. Segundo, uma plataforma de Cloud Computing na qual todos esses dados serão armazenados, e regras de negócios e inteligência podem trabalhar sobre eles. Por fim, um ou vários clientes (desktop, mobile) consomem essas informações e as apresentam aos usuários no momento e no contexto que mais se adequam a eles. Até alguns anos atrás, todo esse processo deveria ser feito quase que exclusivamente com código nativo, sem uso de muitas bibliotecas e/ou frameworks. Mas, com o passar do tempo e, principalmente, com a importância de conceitos como IoT e Smart City, novas soluções surgem quase que diariamente, visando a acelerar o processo de criação e a produção de software para esses cenários. Seria impossível citar todas elas em um reduzido espaço de artigo, porém duas delas me chamaram a atenção recentemente.


24 // Mobilidade é tudo

A primeira delas é o Array of Things. Segundo o próprio site da ferramenta: “The Array of Things (AoT) is an urban sensing project, a network of interactive, modular sensor boxes that will be installed around Chicago to collect real-time data on the city’s environment, infrastructure, and activity for research and public use. AoT will essentially serve as a “fitness tracker” for the city, measuring factors that impact livability in Chicago such as climate, air quality and noise”. Fonte: http:// arrayofthings.github.io/.

servida, e as ferramentas, plataformas e tecnologias oferecidas no mundo contemporâneo permitem integrar dados e informações, com cidades e cidadãos inteligentes. Podemos levar a vida na cidade a um outro patamar, influenciando direta e positivamente a vida de bilhões de pessoas.

Porém, logo em seguida, encontrei o SmartCitizen.me, que é uma solução global composta por um kit baseado no Arduino, uma plataforma na nuvem e uma API aberta para ser usada por desenvolvedores, permitindo a criação de qualquer aplicação com os dados capturados e expostos pelos kits mostrados abaixo:

O projeto fornece inclusive uma página onde você enxerga todos os kits, e com filtros para agilizar a busca. Por exemplo, no momento da escrita deste artigo, no início de setembro, estou em Passo Fundo, uma cidade no interior do Rio Grande do Sul. Mas consigo saber, através do SmartCitizen, que em Ningbo Shi, na China, a temperatura é de 29.10 graus Celsius, que a luminosidade está em 21.9 Lux e que o ruído está em 58.71 decibeis. Ou seja, a criatividade nunca esteve tão bem

RICARDO OGLIARI é co-autor do livro “Android: do básico ao avançado”. Autor de mais de 300 publicações. Especialista em Web: Estratégias de Inovação e Tecologia. MBA em Desenvolvimento de Aplicações e Jogos Móveis. Fundador do Things Hacker Team e eleito um dos 10 nomes de open-hardware em 2013. @mobilidadetudo | rogliariping@gmail.com


25 // Gestão de riscos

A arte de gerenciar riscos Por Andréa Paiva, Coordenadora de MBA na FIAP

Risco faz parte da vida de todos. Desde o momento em que levantamos da cama até o momento em que nos recolhemos, fazemos escolhas que envolvem risco. Na vida corporativa não é diferente: a cada projeto, código desenvolvido ou uma simples reunião, estamos assumindo ou rejeitando riscos. O passo mais importante na tomada de decisões é conhecer os riscos envolvidos, porque a partir do momento em que são conhecidos podemos decidir como gerenciá-los. Ignorar riscos só nos torna reféns do acaso e, consequentemente, perdemos o controle das situações. A análise de risco deve ser considerada em todas as atividades que exercemos nas organizações, desde a avaliação da viabilidade e necessidade de se iniciar um projeto até a escolha de qual ferramenta ou metodologia será adotada no projeto.

ISO 31000 – Gestão de riscos: princípios e diretrizes A norma ISO 31000 é uma norma genérica que pode ser aplicada a qualquer organização e escopo, e fornece princípios e diretrizes para gestão de riscos, definindo risco como “efeito da incerteza nos objetivos”. O processo de gestão de risco proposto pela ISO 31000 nos auxilia a identificar e

a aproveitar os efeitos de impacto positivo para contrabalançar os de impacto negativo, influenciando favoravelmente na realização dos objetivos corporativos, de TI ou de um projeto específico. Para iniciar um projeto, é preciso decidir se ele é necessário, avaliar os custos, os benefícios prometidos ou o prejuízo que pode ser evitado com o desenvolvimento desse projeto. Além disso, precisamos considerar o impacto que as mudanças propostas causarão - mesmo que a princípio sejam consideradas positivas, toda mudança tem impacto que precisa ser gerenciado.

Gestão de mudanças Quando falamos de projeto de TI, surge o conceito de gestão de mudanças e a intima-


26 // Gestão de riscos

A análise de risco deve ser considerada em todas as atividades que exercemos nas organizações, desde a avaliação da viabilidade e necessidade de se iniciar um projeto até a escolha de qual ferramenta ou metodologia será adotada no projeto dora GMUD (sigla que representa requisição de mudanças em muitos modelos de melhores práticas e softwares de mercado), que tem como principal objetivo causar o mínimo de impacto possível na produção e na vida normal do usuário/cliente do serviço de TI. Claro que toda mudança tem impacto, mas se encararmos tudo isso com um processo natural de avaliação de riscos podemos gerenciá-lo: lembrando que primeiro precisamos conhecer os riscos para depois os tratar.

Em ambos os frameworks, a gestão de risco é ponto comum para tomar decisões priorizando escolhas e elaborando ações alternativas considerando alguns cenários, inclusive aquele onde tudo dá errado. A decisão em relação aos riscos sempre será tomada com base nas melhores informações disponíveis no momento, por isso a importância de ter processos de TI estruturados e métricas que avaliem continuamente o quanto esse processo (ainda) está alinhado às necessidades da TI e do negócio e atendendo às expectativas da organização.

Segundo o ITIL V3, o processo de gestão de mudança tem como principal objetivo permitir que as mudanças gerem benefícios e sejam feitas com a mínima interrupção aos serviços de TI. Já o COBIT, outro framework de mercado, apresenta uma visão estratégica que considera a relação das mudanças de TI com os negócios da organização: o processo de gestão de mudanças tem como objetivo atender aos requisitos de negócio em alinhamento com a estratégia da organização, reduzindo retrabalho e defeitos na entrega de soluções e serviços, com foco em controlar a avaliação de impacto, autorização e implementação de todas as mudanças na infraestrutura, nas aplicações e nas soluções técnicas de TI, minimizar erros devido a especificações de requisitos incompletas e interromper a implementação de mudanças não autorizadas.

ANDRÉA PAIVA É coordenadora dos cursos de MBA da FIAP (Gestão de Tecnologia da Informação e Master In Information Technology) e professora de pós-graduação. É doutora em administração e tem TI como primeira formação. Atua desde 1999 como consultora em GRC (Governança, Risco e Compliance). Possui diversos artigos publicados na área de governança e gestão de TI.


28 // Games

As faces do desenvolvimento de jogos no Brasil Por Rodrigo “pokemaobr” Cardoso, Community Manager no iMasters

A maioria dos desenvolvedores em algum momento cogitou a possibilidade de trabalhar com produção de jogos. A boa notícia: o mercado está em expansão. Já a má notícia é que se trata de uma área que ainda não se consolidou no Brasil, o que torna ingressar no setor uma tarefa não muito fácil. Enredo, personagens, plataforma e jogabilidade são algumas das variáveis que devem ser bem pensadas antes de começar a colocar a mão no código. Depois, aplicar os conceitos de física, preocupar-se com otimização de gráficos, qualidade de performance, escolha de trilha sonora e fidelização de público. Para que isso seja possível, é necessária uma boa equipe, que irá trabalhar para que cada parte se encaixe perfeitamente. Como consequência, a experiência do gamer será

boa, transformando-se em horas e horas de divertimento e, em decorrência, aumentando o número de vendas e a monetização. Um bom roteirista é fundamental para descrever como será ambientado o jogo, como se desenrolará a trama, e todas as nuances em torno das personagens. Um game designer definirá o que é possível e o que não é no jogo, criará o design das personagens, do mundo onde o jogo se ambienta e da própria jogabilidade; um artista, responsável pela criação dos assets gráficos - imagens das personagens, dos ambientes, das fases, dos prédios, da interface etc. O sonoplasta cria a identidade sonora do jogo para que ela faça sentido, trazendo ao gamer uma experiência de imersão no jogo (ignore esse fato caso você ainda jogue Tibia), além de outros profissionais. Mas, e o desenvolvedor, onde entra nessa história?


29 // Games

“Um game designer definirá o que é possível e o que não é no jogo, criará o design das personagens, do mundo onde o jogo se ambienta e da própria jogabilidade; um artista, responsável pela criação dos assets gráficos - imagens das personagens, dos ambientes, das fases, dos prédios, da interface etc” O desenvolvedor de jogos deve implementar os sistemas de manipulação de movimento das personagens e os controles do jogo, trabalhar na utilização de inteligência artificial para que os adversários (monstros, chefes etc.), os NPCs (personagens não jogadores) e outros elementos dos jogos “controlados por computador” não tenham movimentos e comportamentos aleatórios, entre outros aspectos. Para facilitar o trabalho dos desenvolvedores, foram criadas grandes plataformas de desenvolvimento de jogos, fazendo com que toda a parte complicada e demorada na produção dos jogos fosse automatizada e melhorada. Com isso, as preocupações com os cálculos das forças da física, apresentação de enredo dos personagens, gatilhos acionados quando alguma ação acontece no jogo, aplicação das características gráficas, até mesmo toda a engine por trás de alguns jogos, bem como a portabilidade dos jogos para as diversas plataformas, são bastante simplificadas e de fácil acesso. Algumas dessas ferramentas podem ser vistas abaixo: • Cocos2D, um poderoso framework open source para a produção de jogos 2D. Possui ramificações para desenvolvimento em várias linguagens, tais como: Python (Cocos2D-Python), Swift (Cocos2D-Swift), JavaScript (Cocos2D-JS), entre outras.

• Blender Game Engine, motor de jogos (engine) 3D multiplataforma que utiliza OpenGL para a manipulação de gráficos, OpenAL para o som e Python para o desenvolvimento dos scripts de jogo. Porém, suporta apenas o formato WAV para sons. • Unity 3D, engine de larga utilização, na qual pode ser utilizado C# ou JavaScript para o desenvolvimento dos jogos. Possui uma infinidade de plugins para otimização de várias funcionalidades dentro do jogo, além da possibilidade da importação de pacotes de imagens (assets) e exportação dos jogos para diferentes dispositivos: Android, iOS, XBOX, Wii U, PS Vita, entre outros. Alguns desenvolvedores, de posse de algumas dessas ferramentas, estão partindo para o que chamamos de desenvolvimento independente ou indie, no qual equipes de uma ou mais pessoas acabam exercendo várias das atribuições de um estúdio de produção de jogos tradicional - nesse caso, o desenvolvedor de jogos acaba assumindo a maioria das tarefas do desenvolvimento como um todo. Esse modelo está bastante em evidência, tendo em vista que diversas vezes jogos mais simples, criados apenas por uma pessoa, conseguem monetizar de forma estrondosa nas plataformas de jogos dos smartphones, tais como Google Play e Apple Store. Como


30 // Games

exemplo, cito o jogo Flappy Bird, que usa apenas propagandas em um modelo de monetização no qual o gamer baixa o jogo de graça, e o desenvolvedor é pago pela visualização de anúncios que aparecem dentro do jogo. Dessa forma, ele chegou a faturar $50.000 por dia em seu lançamento, no início de 2014.

são. Segundo uma pesquisa da NewZoo, o Brasil ocupa, em 2016, o 12º lugar em receita com jogos, tendo uma receita estimada de US$ 1,275 bilhão. Grande parte desse total virá de jogos grátis, ou de baixo custo, que requerem um grande investimento em equipamentos, tais como jogos para smartphones.

Isso está sendo muito utilizado no Brasil, que carece de grandes estúdios de produção de jogos. De acordo com um estudo do BNDES de 2014, existem pouco mais de 130 empresas de desenvolvimento de jogos em atividade no País, sendo que em torno de 80% utilizam o Unity 3D como engine, 18% desenvolveram tecnologia própria e 14% utilizam o Cocos2D - lembrando que algumas utilizam mais de uma engine para o desenvolvimento de seus jogos.

Bom momento para olhar esse mercado e começar a desenvolver jogos, não acha?

Em relação à metodologia de desenvolvimento, o desenvolvimento ágil está sendo bem utilizado nas empresas brasileiras de produção de jogos, com o SCRUM sendo utilizado por mais de 60% delas, e apenas 4,5% usando o modelo cascata (waterfall). Existem outros dados na pesquisa. Então, caso ra saber um pouco mais está o mercado brasileiro, http://bit.ly/censogames

interessantes você queisobre como confira em:

Entre as produtoras mais conhecidas estão a Beholder Studios, que fica em Brasília e é a criadora de conhecidos jogos para smartphones, como Knights of Pen and Paper e Chroma Squad. A Aquiris é a maior desenvolvedora de jogos utilizando Unity na América Latina. A Oktagon fica no Rio de Janeiro e é criadora do Dungeon Battles: Heroes of the Throne e outros jogos para smartphones. Embora tenhamos poucas produtoras, o mercado de games no Brasil está em expan-

RODRIGO CARDOSO Rodrigo “pokemaobr” Cardoso é Bacharel em Matemática Aplicada e Computacional pela Universidade Federal Rural do Rio de Janeiro e tem MBA em Engenharia de Softwares Orientado para Serviços pelo IBTA. Atualmente, é Community Manager no iMasters. Desenvolvedor desde 1999. Evangelista PHPSP. Desenvolve sistemas desde batalhas Pokémon em mIRC a robôs automatizadores de tarefas.


32

Drops do mercado

Site Mercado Livre Developers está disponível também em português Desde 2012 o Mercado Livre tem a sua plataforma aberta e mais de 100 mil aplicações já foram desenvolvidas por meio da sua API. Para tornar ainda mais fácil o acesso de desenvolvedores independentes a sua tecnologia, a empresa acaba de disponibilizar a versão em português do site developers.mercadolibre.com/pt-br. Nesse endereço, fica toda a documentação da API e os SDKs (Kits de Desenvolvimento de Software) em diversas linguagens tecnológicas. “O site já estava disponível em inglês e espanhol, mas queríamos torná-lo ainda mais acessível aqui no País”, afirma Nicolas Coniglio, gerente de Desenvolvimento do Mercado Livre no Brasil. Além disso, como parte da estratégia de apoio a desenvolvedores independentes, o Meli Fund, um fundo no valor de 10 milhões de dólares, apoia as startups que desenvolverem as melhores soluções a partir da API, voltadas para as plataformas do Mercado Livre.

Resellerclub lança Cloud Hosting Já é sabido que a ResellerClub é uma plataforma de revenda que permite desenvolvedores web, designers e empresas de hospedagem oferecerem serviços web e domínios como se fossem deles, modelo de negócio também conhecido como whitelabel. Com objetivo de ampliar o alcance de mercado e a rentabilidade de seus revendedores, a ResellerClub lançou a solução Cloud Hosting, que possui alta performance a partir de uma estrutura de cache robusta, cPainel, além do disco e transferência serem ilimitados. A implementação é simples: Basta acessar o site resellerclub.com.br e contratar, ou também poderá se cadastrar no programa de revenda para ganhar dinheiro revendendo este serviço. A ResellerClub é a única plataforma de revenda presente no Brasil e conta com mais de 200 mil revendedores e 5 milhões de domínios gerenciados no mundo. E considera que é o melhor momento de mercado para seus revendedores alavancarem o negócio de hospedagem de sites no Brasil.

Cielo lança e-Commerce 3.0 A Cielo acaba de colocar no mercado mais uma novidade: a plataforma 3.0, desenvolvida em parceria com sua subsidiária, a Braspag. A nova API utiliza tecnologia Rest e pretende mudar a dinâmica do comércio eletrônico e a forma de se realizar pedidos e compras pela Internet. Plataforma aberta, ela tem compatibilidade com qualquer linguagem, permite integração mais simples e fácil e maior escalabilidade. Possibilita ainda que pedidos de pagamento sejam enviados a partir de qualquer dispositivo ou objeto, de maneira simples. A plataforma 3.0 da Cielo garante que o status de pedidos de compra estejam sempre atualizados e conta, ainda, com ambiente de teste (sandbox), sistema anitfraude integrado e recorrência programada. Novas opções de pagamento foram disponibilizadas, como boleto e débito online e a integração in-app para Android. A nova API 3.0 já está disponível no Portal dos Desenvolvedores (www.cielo.com.br/desenvolvedores) e no canal GitHub da Cielo. Confira!

Yebo libera nova SDK para facilitar desenvolvimento de sua loja utilizando JavaScript Visando maior comodidade e praticidade para as agências e desenvolvedores, a API e-commerce Yebo desenvolveu uma nova e completa SDK com o que há de mais moderno no mundo do JavaScript. O lançamento desta nova SDK traz para todos os usuários Yebo uma nova forma de criar lojas virtuais, facilitando o uso de qualquer framework ou biblioteca JavaScript, onde é possível utilizar o Vue.js, Angular, ReactJS, ou qualquer outro em que o desenvolvedor já trabalhe. Outro diferencial é o suporte a aplicações back-end escritas em cima da plataforma Node.JS. Esta SDK chega ao mercado para trazer muito mais autonomia e velocidade no desenvolvimento de qualquer e-commerce ou aplicação que necessite ter ferramentas similares.


33 // Segurança

Construindo um checkout transparente seguro em ambientes não-seguros Por Bruno Paz, Co-founder da Yebo e do AZPAY

O conceito de checkout transparente é bem simples: a execução de todo pagamento é realizada dentro do site, eliminando os redirecionamentos para páginas intermediárias.

Layout e usabilidade – JessePollak

As vantagens são aumento da conversão em até 30%, pagamento sem sair do seu site, usabilidade e compra com 1-click.

Vamos usar esta biblioteca open source para gerar nossa interface e economizar o nosso tempo no desenvolvimento https://github.com/jessepollak/card

Nosso cenário de exemplo:

API E-commerce – Yebo

Imaginemos um site que não é propriamente um e-commerce, mas deve possuir um meio de pagamento. Vamos pensar em um site de uma ONG – SaveDEV, que vende camisetas e tem uma opção para as pessoas realizarem doações. O site da ONG é praticamente estático e possui um ambiente seguro (https). Os desafios são layout e usabilidade, segurança, controle das doações, controle dos pagamentos, conformidade com PCI Compliance e dados trafegados em ambiente não-seguro.

Bibliotecas de apoio para o desenvolvimento Vamos usar algumas bibliotecas disponíveis na construção do nosso exemplo.

Uma sugestão é usar uma API e-commerce para ajudar no controle de doações realizadas, lembrando que no nosso exemplo a ONG não possui uma plataforma de vendas - http://yebo.com.br

Criptografia client-side JsenCrypt Também usaremos uma biblioteca JavaScript chamada JsenCrypt (https://github. com/travist/jsencrypt), que basicamente usa o algoritmo RSA para criptografar os dados, usando chaves públicas e privadas no lado do cliente, ou seja, client-side.


34 // Segurança

Configurando

Quando o doador clicar, iniciamos nosso fluxo.

Geração de chaves Devemos gerar duas chaves: a pública, que ficará no JavaScript, e a outra, no servidor; Gerar chave privada: openssl genrsa -out rsa_1024_priv.pem 1024 cat rsa_1024_priv.pem Gerar chave pública: openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem cat rsa_1024_pub.pem

Criação de produtos Vamos criar dois produtos dentro da plataforma e-commerce, que chamaremos de Doação – R$200.00 e Doação – Sem limite. Esses produtos são fictícios, apenas para que possamos ter um controle do volume de doações. Pelo painel da plataforma, vamos controlar as doações. Em geral, as APIs e-commerce possuem todos os passos de vendas, porém, no nosso exemplo, vamos usar o endpoint de carrinho (Cart) e pedidos (Orders) apenas.

Executando o fluxo completo A nossa ONG não possui HTTPS habilitado em seu site, ou seja, todos os dados trafegados estão desprotegidos até a chegada ao servidor. Vamos criar um botão de doação qualquer e espalhar pelo site.

1º – Criando um cart na API e-commerce Antes de chamar a interface, enviamos um request para a API e-commerce para o endpoint /cart, e adicionamos o produto ao carrinho - no nosso caso, o produto chamado “Doação R$200.00”.

2º – Interface gráfica Depois de confirmada a criação do carrinho, realizamos a chamada para a interface - já com as alterações necessárias e adaptadas para cada regra de negócio.


35 // Segurança

3º – Criptografar os dados sensíveis – Client-side Depois de preencher todos os dados do cartão, ao clicar no botão de doar, devemos criptografar os campos sensíveis. No exemplo abaixo, criamos um array e o atualizamos com os dados criptografados baseados na chave pública única.

Na sequência, enviamos os dados do formulário para um servidor não-seguro (http). Com os dados do usuário todos criptografados, somente com a chave privada, que é mantida em sigilo pelo desenvolvedor, será possível descriptografar.


36 // Segurança

4º - Receber os dados e descriptografar – Server-side Vamos usar uma biblioteca nativa (no caso, PHP) para reverter os dados. Criamos um script muito simples para receber os dados do formulário.

“Independentemente do conteúdo, é importante que o site transmita confiança para quem vai expor seus dados na internet”

recionar o usuário para uma tela de sucesso, ou pedir para tentar novamente com outro cartão, em caso de ‘pagamento negado’.

5º – Processar pagamento Podemos usar diferentes métodos de processamento de pagamento, como gateways e APIs de pagamentos, mas neste momento vamos seguir usando a API e-commerce, que já possui seu próprio sistema de pagamento. Depois de processar o pagamento, temos duas prováveis respostas: ‘autorizado’ ou ‘negado’. Em caso de ‘autorizado’, devemos alterar o status do pedido para ‘pago via API Yebo’, e retornamos os resultados para o nosso script Ajax, que está esperando uma resposta.

6º - Finalizando o processo de pagamento Finalmente, com a resposta do pagamento gerado pelo servidor, podemos retornar a mensagem de ‘pagamento realizado’ e redi-

BRUNO PAZ Bruno Paz é co-founder de duas startups brasileiras: da plataforma de e-ecommerce Yebo e do gateway de pagamento chamado AZPAY. Tem experiência de 15 anos no mercado de software, é especialista em tecnologias e em gerenciamento de projetos. Atualmente é Product Owner da Clickbus, no México.


Drops do mercado

37

Node.JS +MongoDB: KingHost oferece suporte a stack MEAN A KingHost passa a oferecer um ambiente rápido, estável e de fácil gerenciamento para aplicações em JavaScript, com o suporte completo a stack MEAN (MongoDB, Express, Angular. JS e Node.js), trazendo como principal benefício o JavaScript como linguagem única tanto para back-end quanto para o front-end de aplicações. O Node.JS beneficia performance e escala nas aplicações por operar com chamadas sem bloqueio que suportam dezenas de milhares de requisições simultâneas. Já o MongoDB é um banco de dados flexível, de alta performance e orientado a documentos, sendo utilizado por diversas empresas para gerenciar aplicações de Big Data. Essa dupla se torna imbatível no desenvolvimento de soluções robustas e de grande escalabilidade. Experimente o Node.JS e o MongoDB na KingHost, contando com a segurança proporcionada pela hospedagem especialmente preparada para estas tecnologias. Saiba mais: https://www.kinghost.com.br/node-js.

Stone apresenta ao mercado novo sistema Antifraude

Domínio .SITE: o Domínio que Você Merece

As perdas com relação a fraudes com cartões de crédito em e-commerces são uma das grandes preocupações para os lojistas virtuais. Para prevenir que transações fraudulentas sejam autorizadas, a Stone foi a primeira adquirente a criar seu próprio produto antifraude, onde o cliente encontra tudo em um só lugar: adquirência, conciliação, gateway e antifraude. Visando o aumento de aprovação das transações, há uma relação de ganha-ganha, resultando em até 95% de conversão de vendas. A Stone só ganha quando o cliente tem a sua transação aprovada de forma assertiva, que pode gerar até 30% de economia no final do mês. Além disso, faz a gestão de chargeback, garantindo menor tempo de classificação e maior assertividade das regras, auxilio na reapresentação da compra e recuperação de valores. Também apresenta relatórios de performance e a possibilidade de personalização de regras de acordo com o perfil dos clientes ou do produto comercializado.

Uma grande ideia merece uma presença Web de impacto. Com um domínio .SITE, você pode registrar o domínio perfeito para a sua marca, sem ter que comprometer o nome com uso de hífens, modificar o termo ou até mesmo substituir o nome por completo. Com mais de 400.000 domínios já registrados, .SITE é uma das mais bem sucedidas entre as novas extensões de domínios, e de mais rápido crescimento. Curto, simples e fácil de lembrar. Assim é .SITE. Saiba mais em www.tenha.site. (Com informações de Radix)


TRANSFORME SEU CONHECIMENTO EM REFERÊNCIA!

A Faculdade IMPACTA tem os cursos de Pós-graduação e MBA que te preparam para ser um especialista de referência no mercado de TI, Gestão, Marketing ou Digital! São mais de 20 opções de cursos para a sua carreira, todos ministrados por professores experientes e de nome no mercado e com formação voltada para a gestão, inovação e empreendedorismo.

Inscrições abertas e vagas limitadas Acesse:

www.impacta.edu.br

E GARANTA UMA FORMAÇÃO DE REFERÊNCIA PARA SUA CARREIRA


39 // Comunidades

Opensanca O Opensanca (www.opensanca.com.br) tem a mesma proposta de um meetup, tendo o foco central no encontro de desenvolvedores e empreendedores da região para fomentar capacitação e discussão voltada à tecnologia aberta. O grupo se concentra na região de São Carlos e Araraquara/ SP. O grupo trabalha com workshops ou palestras evidenciando Android, SpringBoot, Angu-

lar, Node.Js, Python, Django, Meteor, Elixir, Ruby, TDD, DevOps e MEAN. Todo o trabalho pode ser visto através no Github. Para participar do grupo, basta acessar nosso portal no Meetup (http://www.meetup.com/ opensanca/). Faça sua inscrição - praticamente todos os treinamentos são gratuitos e veiculados por lá. Participe também do canal do Slack, que serve para trocar informações.

GrudePB O GRUDEPB (Grupo de Desenvolvedores da Paraíba) surgiu como uma organização espontâneas entre os membros organizadores das comunidades locais. Na Paraíba existe uma interseção muito grande entre os membros das comunidades, por exemplo, grande parte dos membros do Jampa Ruby (grupo de desenvolvedores Ruby de João Pessoa) e do PHP-PB (PHP Paraíba) fazem parte do Paraiba.js porque é natural lidar com mais de uma linguagem ou tecnologia no dia-a-dia.

Tendo isso em mente, os grupos passaram a se reunir e organizar virtualmente no mesmo canal, usando o Slack. Assim, os membros e organizadores podem discutir entre si, promovendo um intercâmbio entre as comunidades. Atualmente, fazem parte do GRUDEPB: Jampa Ruby (Foto), PHP-PB, Paraiba. js, Women Techmakers João Pessoa e HoraExtraJP. Conheça mais sobre o grupo em grudepb.herokuapp.com/


40 // Comunidades

Women Techmakers São Luis O Womem Techmakers São Luis é uma comunidade que impulsiona e motiva mulheres há mais de dois anos em São Luis do Maranhão. O WTM é composto por uma equipe de mulheres ativas e com vontade de empoderar outras pessoas para o mundo da tecnologia.

palestras de mulheres que fizeram história na tecnologia no Maranhão. Além dos eventos, também aconteceram oficinas e meetups. Contam com o apoio de outras comunidades, como GDG São Luis – o WTM é o braço direito deles e do PhP Maranhão, que está sempre as acompanhando nos eventos.

Na estrada há 2 anos, já realizaram dois grandes eventos de um dia todo, com grandes

Entre em contato pelo fanpage www.facebook.com/wtmslz

CocoaHeads Fortaleza A comunidade do CocoaHeads Fortaleza (www.meetup.com/pt/CocoaHeads-Fortaleza-Meetup) iniciou os seus trabalhos em janeiro de 2015 e desde então não para de realizar eventos para unir e fomentar a comunidade de desenvolvedores iOS. Já são 10 edições com média de 30 participantes por edição, onde buscam levar

desde conceitos de design, usabilidade e aplicações que foram destaque na cidade e falar sobre o arranjo técnico de cada aplicação. Cada edição traz uma temática diferente, procurando abordar desde dicas para iniciantes no mundo iOS, como os mais avançados. Hoje são mais de 500 membros na comunidade do Meetup, o que a torna uma das maiores do Brasil – ficando atrás apenas do CocoaHeads SP.


41 // Comunidades

Grupo de Desenvolvedores Web da Serra Gaúcha O grupo de desenvolvedores web da serra gaúcha é formado por, aproximadamente, 60 profissionais - distribuídos nas mais diferentes tecnologias: PHP, Rails, Java e .Net. Participam também especialistas em marketing digital, analistas de sistemas, DBAs, administradores de redes e entusiastas Agile. Periodicamente, são realizados encontros presenciais que se iniciam com um longo bate-papo, depois se propõe uma pauta e finaliza-se com um jantar.

Já foram inúmeras apresentações técnicas como, por exemplo, a do Fabiano Franz engenheiro de software sênior da Red Hat: http://ow.ly/BhOE3044wCa. Abaixo seguem os canais de contato: Lista de discussão: web-devs-ti-canela-gramado@googlegroups.com Grupo no Slack: https://devserra.slack.com

PHPSP Noroeste Paulista A comunidade tem como intuito trazer a experiência de grandes eventos de PHP para o Noroeste Paulista, além de disseminar a linguagem, compartilhamento de código (opensource) e também auxiliar estudantes e profissionais que queiram iniciar na linguagem ou já estejam inseridos nela. O PHP Noroeste Paulista é um braço do PHPSP e ainda está no começo, buscando novos membros e iniciando agora encontros mensais. Conta também com um evento semes-

tral chamado PHP Light Day, que tem como objetivo trazer conteúdo de profissionais que já atuam no mercado, e incentivar estudantes e profissionais da região a palestrar e mostrar seu conhecimento. O objetivo é fortalecer a linguagem na região e aproximar os programadores, criando, então, este espírito de cooperatividade e união, ou seja, mostrar que ensinando poderá aprender ainda mais. Facebook: elephantnoroestepaulista Telegram: http://ow.ly/BgTE3044xkf


42 // Comunidades

GDG Cabreúva Fundado voluntariamente em 24 de outubro de 2015, por um grupo de desenvolvedores apaixonados por tecnologia, o GDG Cabreúva nasceu com intuito de fomentar, compartilhar, divulgar e ensinar tecnologias Google na cidade de Cabreúva e micro região de Jundiaí através de eventos presenciais ou online, oficinas, treinamentos, palestras, integração com outros GDGs, universidades, empresas e ONGs.

Desde a sua formação, atendeu mais de 400 pessoas com suas ações gratuitas, abertas e totalmente focada na comunidade de desenvolvedores. Para entrar em contato com a comunidade e ver os novos encontros, acesso o nosso meetup: www.meetup.com/pt-BR/GDG-Cabreuva/ ou no site: gdgcabreuva.com

Things Hacker Team Um final de semana de muito Hacking e uma semente plantada na Globalcode; era o Arduino Hacking Weekend, e nós fundamos o Things Hacker Team. A ideia era prosseguir com os estudos para não fazer um curso tão bom acabar por ali. Alguns encontros e conversas depois, o grupo foi para um dos maiores eventos de tecnologia para falar sobre Automação Residencial com uma casa de isopor.

Criou-se um logo, o grupo foi ampliado e o que se seguiu foi tudo com a base em alguns dizeres que definidos para o grupo: “Nosso foco é não ter foco”. 7Comm, Fatec, Globalcode, Intel, Samsung, PayPal, Unicamp. Essas foram apenas algumas das parcerias nestes três anos de time. Atuamos nas áreas de mobile, eletrônica, Internet das Coisas, robótica, automação residencial, gaming. E isso é só o começo! www.meetup.com/pt-BR/THT-Things-Hacker-Team/


43 // Comunidades

ThinkUp Imagine encontros de tecnologia, entretenimento, design com essência e significado, que conectam pessoas e redes de pessoas, que se envolvem em comunidades de inovação, desenvolvimento e negócios para a criação incremental e disruptiva de um mundo radicalmente melhor. O Up tem a ver com a mania de querer fazer melhor, de querer olhar mais pra cima, de estar constantemen-

te desafiando a gravidade com o que o grupo se propõe a (re)pensar. Se você se identificou, faça uma visita, aprenda o que puder, ensine o que puder e se divirta! A ideia é pensar junto o caminho mais bacana que leve para o alto e avante. THINK, OutTHINK, ThinkUp. www.meetup.com/pt-BR/thinkup/

Mobile First MeetUp Produção de soluções para B2B no Brasil, mercado este com cerca de 6,5 milhões de empresas e que está sempre necessitando de bons criadores de solução, desenvolvedores ou não, e que gera uma boa remuneração. A ideia é criar estas soluções de forma rápida e descomplicada, que, ao invés de meses, leve apenas dias. Para isso, dá-se ênfase em plataformas de desenvolvimento rápido, onde o conhecimento técnico de

desenvolvimento dá lugar ao conhecimento de negócios e criatividade para solução dos problemas apresentados. O Meetup, dependendo do tema escolhido para o dia, pode ter palestras, mão na massa (live code) ou painel de discussão. Compartilhamento de conhecimento, network e incentivo para criar soluções B2B são os pilares da comunidade, todos são bem-vindos. www.meetup.com/pt-BR/Mobile-First-Meetup/


45 // Servidor de busca

Desmistificando o ElasticSearch: Mapping & Analyzers Por Thiago Barradas, .NET Developer na MundiPagg

Na era da informação, vemos cada vez mais uma quantidade expressiva de conteúdos espalhados pela Internet. Diversos sites, aplicativos e ferramentas em geral oferecem em abundância os mais variados tipos de informações, porém seus motores de busca nem sempre são eficazes. Muitas vezes, apesar da qualidade do conteúdo, localizar a informação pode ser muito difícil pelo formato da busca e pelas limitações na utilização de bancos relacionais, causando uma experiência ruim ao usuário, incluindo o fato de que, em grandes volumes de dados, o tempo de processamento pode ser alto. Para tornar a busca do seu conteúdo fácil, com diversos recursos para informações que são aparentemente subjetivas e extremamente rápidas, podemos utilizar o ElasticSearch. O ElasticSearch é um servidor de buscas distribuído desenvolvido em Java, baseado no Apache Lucene e possui código aberto para toda a comunidade. Ele é utilizado principalmente para buscas full-text, possuindo recursos muitos interessantes. A comunicação com o serviço é feita através do protocolo HTTP utilizando Json, sendo ele uma API Rest. Sua documentação é bem completa e na Internet é possível achar bastante conteúdo de alta qualidade sobre o assunto. Dentre alguns de seus recursos, além de diversas formas de buscas full-text e outros tipos de dados, é possível citar agregações highlighting, autocomplete, geo-localização,

entre outros. A utilização de todas essas funcionalidades é simples, mas em alguns casos podemos ter problemas relacionados à estrutura que criamos no momento de indexar nossos documentos. Neste artigo, abordaremos alguns conceitos para que fique mais claro como funciona a indexação, incluindo o mapeamento e os analisadores. Mapping: É o processo de definição de como um documento e seus campos são armazenados e indexados. Nesta etapa, podemos definir os tipos de dados para cada campo (string, integer, date, geolocation etc.). Para campos do tipo string, é possível definir o tipo de indexação e, caso seja necessário, qual analisador será utilizado. Para os diversos tipos de dados, os índices têm um comportamento comum, exceto para string, que será o nosso foco. É importante ressaltar que, após criado, o mapeamento não pode ser alterado e por isso devemos ter muita atenção ao criar o esquema de nossos documentos. Se for necessário alterar o esquema, é preciso reindexar todos os documentos. Para strings, pode-se definir o tipo de indexação e o analisador que será usado. Os tipos de indexação podem ser: • analyzed – O dado é tratado e quebrado em diversos índices a partir do analisador definido;


46 // Servidor de busca

• not_analyzed – O dado não é analisado, e o índice possui exatamente o valor recebido; • no – O dado não é analisado, nem indexado; Analyzers: Os analisadores são responsáveis por tratar os dados e gerar os índices associados a eles. O texto recebido é quebrado em diversos tokens, seja por espaços em branco ou caracteres especiais, e cada token é analisado e normalizado. Apenas campos definidos no seu mapeamento com indexação do tipo analyzed passam por esse processo. Os analisadores também atuam quando é efetuada uma query em cima desses dados, usando sempre o analisador definido, para que os dados enviados para a consulta também sejam normalizados. Existem diversos tipos de analisadores, para diversas necessidades, idiomas específicos e com possibilidade de customização. Vamos supor que estamos indexando a informação: “Apenas um teste”. Se o campo for not_analyzed, o seu índice será exatamente seu valor. Mas se o campo for analyzed, seu índice seria composto pelos seguintes tokens: “apenas”, “um”, “teste”. Agora que compreendemos esse conceito, podemos começar a nos questionar sobre algum dos impactos - por que usar e como usar índices analisáveis e não analisáveis. Um campo não analisável é usado normalmente para expressões exatas, únicas. Podemos ter como exemplos possíveis enumeradores, unique identifier (esse tipo deve ser usado como string, pois não existe nativo), siglas etc. Se executado uma query full-text em cima desse dado, ele não seria encontrado mesmo que a palavra-chave fosse exatamente o valor que está armazenado, porque o texto buscado seria quebrado em diversos tokens e o índice do dado armazenado é o valor completo, logo, não teríamos um

“match”. O inverso também não funcionaria. Executar uma query por valor exato em um campo analisável não traria resultados, uma vez que a palavra-chave seria o valor completo, buscado nos tokens processados, e também não retornariam resultados. Logo, fica claro que devemos pensar e planejar bem ao definir o que são dados exatos e subjetivos na hora de mapear nossos campos, e usar as queries corretas ao executar uma consulta.

“Para tornar a busca do seu conteúdo fácil, com diversos recursos para informações que são aparentemente subjetivas e extremamente rápidas, podemos utilizar o ElasticSearch” Existe um grande problema quando falamos de dados analisáveis e, em certas situações, quando precisaríamos que essa informação pudesse ser utilizada também com seu valor exato, dois exemplos clássicos ocorrem com ordenação e agregações. Vamos supor que temos os seguintes dados armazenados em nosso servidor:


47 // Servidor de busca

Se fosse solicitado para ordenar por esse campo, a ordenação seria executada no conjunto dos tokens referentes a cada valor, e o primeiro valor seria para ordenar. Para o valor “Apenas um teste”, uma ordenação crescente se basearia no token “apenas”, enquanto uma ordenação decrescente se basearia no token “um”, causando na verdade uma desordenação dos dados.

tulo de um artigo, nome de pessoas, nome de bairros etc., cujas possíveis ordenações e agregações sejam necessárias, seria bem complicado lidar com isso. A melhor maneira para contornar esse problema é ter o mesmo campo indexado das duas formas, sendo um analisável para o uso de buscas full-text e outro não analisável para ordenações e agregações. Para implementar essa estratégia, não é necessário criar dois campos com nomes diferentes. Dentro do mapeamento de um campo, é possível declarar subcampos (multifields) e especificar como eles serão indexados. Por convenção, usamos um subcampo chamado raw não analisável dentro do campo analisável, permitindo que essas operações possam ser executadas. Um campo title teria também um subcampo title.raw. Um mapeamento já existente não pode ser modificado, mas novos campos podem ser adicionados a qualquer momento. Podemos adotar o uso de templates para evitar esse mesmo problema em campos adicionados dinamicamente, na indexação de novos campos, mas isso é um assunto para um próximo artigo.

Se fôssemos agregar todos os valores distintos desse campo, também teríamos problemas. Em vez de obtermos os três valores distintos (“Apenas um teste”, “Estou aqui ainda”, “Boa tarde”), iríamos obter todos os tokens separadamente. O resultado seria o conjunto: “apenas”, “um”, “teste”, “estou”, “aqui”, “ainda”, “boa”, “tarde”.

THIAGO BARRADAS Thiago Barradas é .NET Developer na MundiPagg,

Para campos que não serão ordenados e nem agregados como conteúdos muito extensos, isso não seria um problema. Mas para campos curtos e analisáveis, como tí-

atualmente com foco em APIs e buscas elásticas. Apaixonado por novas tecnologias, música e natureza.

tbarradas@mundipagg.com


48 // Código Aberto

Sistemas operacionais alternativos

Por Kemel Zaidan, evangelista Locaweb em tempo integral e de software livre nas horas vagas

Nem só de Linux e FreeBSD vive o mundo dos sistemas operacionais livres. Apesar de o Linux ser hoje um projeto muito bem sucedido e quase onipresente em celulares Android e em boa parte dos dispositivos IoT, há ainda outras opções de sistemas operacionais livres menos conhecidas. Veja algumas delas abaixo.

ReactOS

Você está entre aqueles que ficaram chateados com o fim do Windows XP? Então não tema, pois o React OS é um projeto que tem como objetivo a compatibilidade binária com o Windows. Por mais estranho que isso pareça, o projeto está em desenvolvimento desde 98 e afirma poder executar, com sucesso, diversas aplicações e drivers escritos originalmente para o sistema da Microsoft. https://reactos.org

NodeOS

JavaScript é uma linguagem amada e odiada por muitos. Apesar disso, o NodeOS está aqui para provar a lei de Atwood, que diz que “tudo que puder ser escrito em JavaScript será escrito em JavaScript”. Trata-se de kernel Linux sem bash: todas as aplicações são escritas em Node.js e gerenciadas pelo npm, que conta com mais de 30 mil pacotes de aplicações. http://node-os.com

KolibriOS

JavaScript é uma linguagem amada e odiaMostra-se bastante poderoso para um sistema que precisa de apenas 8Mb de RAM para ser executado. O segredo para ter um boot em menos de 10s e executar aplicações quase instantaneamente é ter a maior parte de seu código-fonte escrito em FASM Assembly language. Apesar de simples, o Kolibri oferece suporte completo para FAT12/16/32 e read-only para NTFS, ISO9660 e Ext2/3/4, possuindo drivers para placas gráficas, de som e de rede populares. http://www.flatassembler.net

Redox

O Rust é uma nova linguagem de programação voltada para o desenvolvimento de sistemas que também consegue garantir concorrência e segurança. Isso faz dele uma excelente alternativa ao bom e velho C. Pensando nisso, os criadores do projeto decidiram utilizar a linguagem para criar um novo sistema operacional que implementa uma arquitetura de microkernel e que pode tirar proveito dos modernos recursos oferecidos pela linguagem. É impressionante constatar os avanços já alcançados pelos desenvolvedores, dado que o release inicial data de abril de 2015. https://www.redox-os.org

Haiku

É uma reimplementação do antigo BeOS, sistema operacional à frente de seu tempo e de parte dos computadores BeBox, populares nos EUA nos anos 90. A Be Inc., empresa por trás da iniciativa, tinha um modelo de negócio semelhante ao da Apple, no qual software e hardware eram vendidos juntos, oferecendo uma experiência integrada. O Haiku começou a ser desenvolvido em 2001, quando a Be Inc. foi vendida para a Palm e o BeOS, descontinuado. https://www.haiku-os.org

KEMEL ZAIDAN É um pseudo-programador, metido a jornalista, com alma de artista e evangelista na Locaweb. kemel.zaidan@locaweb.com.br | @kemelzaidan


Capa // 50

A ferocidade da engenharia aplicada ao mercado de software Por Alex Lattaro, para Redação iMasters


Capa // 51

A evolução Os tempos mudam, e essas mudanças (boas ou não) sempre são bem-vindas, pois nos fazem refletir sobre antigos pontos de vista e encarar os problemas através de novas óticas. Se você conversar com profissionais antigos de TI, perceberá o quão grande foi esta mudança em nosso mercado. Atualmente, muito se fala sobre engenharia de software, também chamada de ES. Um assunto antigo, mas que recebeu uma nova roupagem devido a dinamicidade atual que o mercado demanda. Este é um assunto que você provavelmente estudou na faculdade, caso tenha estudado algo relacionado à computação. Caso não tenha, você provavelmente aprendeu sobre isso na prática. Mas de uma forma, ou de outra, você com certeza se deparou com esta ciência. E engenharia de software não é uma disciplina da ciência da computação, embora muitas vezes ela se confunda devido à falta de conhecimento. A ES, segundo Pressman e Maxim, no seu livro “Engenharia de software, uma abordagem profissional, de 2016, é descrita da seguinte maneira: “Abrange um processo, um conjunto de métodos (práticas) e um leque de ferramentas que possibilitam aos profissionais desenvolver software de altíssima qualidade”. Em meados da década de 1990, a ES passou a receber uma nova roupagem, quando a metodologia Agile começou a evoluir, indo de encontro aos antigos modelos de desenvolvimento, como o método cascata, por exemplo. Segundo o especialista Fernando Sambineli, muitas empresas têm trabalhando com métodos ágeis, sobretudo com

SCRUM, de forma customizada. “Muitas dão certo, mas pesquisas apontam que uma boa parte tem sérios problemas. Esses problemas vão de aspectos óbvios, como a resistência a mudanças até requisitos mais específicos, como a customização dos processos de ES, treinamentos e coach ágil”. Ele lembrou ainda que existe uma confusão de propósitos quanto aos métodos ágeis, que, em sua maioria, apresentam um conjunto de premissas, ritos e ferramentas que, de uma forma geral, trazem orientações mais gerenciais que técnicas. “Muitas práticas de ES não são apresentadas de forma prescritiva nesses métodos, deixando a critério de cada equipe ágil sua adoção e customização”, explicou. Atualmente, principalmente devido a metodologia Agile, ao crescimento da tecnologia mobile, do software como serviço, da escalabilidade, da computação em nuvem e da concorrência no mercado, vimos uma necessidade enorme de entregas contínuas, incrementais e de alta qualidade. Vemos muitas startups se desenvolvendo de uma maneira feroz no mercado de trabalho, devido à enorme aplicação da engenharia de software. Empresas como Booking, Uber e Netflix jamais teriam se destacado se não investissem de forma massiva em ES.

O processo Quando falamos de engenharia de software, falamos principalmente do processo de desenvolvimento de software. Desde a escolha da arquitetura a ser utilizada, a documentação, a definição dos times, as ferramentas, o modelo e, principalmente, os passos a serem seguidos para que o software seja entregue com qualidade e dentro do prazo. O processo é o que norteia o ciclo de desenvolvimento do software, é o conjunto constituído por atividades,


Capa // 52

métodos, práticas e transformações com um objetivo em comum. Sambinelli aponta que a ES deve ter como papel principal o direcionamento do processo produtivo para que este entregue maior qualidade e satisfação aos clientes e usuários. “A ES nunca pode ser um fim em si mesmo, mas um meio para entregar mais valor aos usuários do software. Quando a ES passa a ser um fim, os times terão documentações generosas, ferramentas poderosas, ambientes de trabalho “cool”, mas correm o risco de não gerar nenhum valor aos usuários e perderem seus clientes”. É nesta etapa que é providenciada a interação entre usuários e projetistas, entre usuários e as ferramentas em desenvolvimento que serão utilizadas. É importante entender que a própria ferramenta deve servir como comunicação entre desenvolvedores e usuários.

Os métodos Observando o mercado, conseguimos ver que muito se preza pela entrega contínua, e observando mais de perto este fato, vemos muitas empresas trabalhando com deploys diários. Em um artigo publicado no blog de engenharia da Uber, eles abordaram os deploys, mas foram além: explicaram como eles trabalham com algo que eles chamam de micro deploys. De acordo com o crescimento da plataforma, houve também um crescimento do número de engenheiros, o que levou a desorganização do deploy do código. As equipes enviavam suas novas versões dos seus microsserviços, e cada vez que isso dava errado, o processo tinha que ser revertido em uma máquina de cada vez. Para

resolver este problema e manter a qualidade do serviço, eles criaram o micro deploy, que é usado sempre que um código está pronto para produção, ou seja, revisado, aceito, aprovado em todos os testes unitários e feito o merge no repositório. Para que isso fosse concretizado com sucesso, foi preciso seguir um processo. Era preciso ter builds consistentes para diferentes serviços, tempo de inatividade nula para upgrades, detecção antecipada e automatizada de erro, prevenção de interrupção, rollouts de confiança, facilidade no uso e ,por fim, utilizar uma API REST que fornecesse uma integração profunda. Outro aspecto que comumente é esquecido, é a interação do produto com o cliente, ou com os clientes do cliente. Quando uma nova feature é implementada, por exemplo, pouco se sabe sobre a aceitação dela perante os usuários. Ou pouco se tem certeza da sua eficácia e do seu engajamento. Algo rotineiro implementado nesta etapa, são os testes A/B. Com eles é possível inserir uma nova feature e medir a sua eficácia perante os usuários. Estes testes também podem ser entendidos como testes em produção. Normalmente, essa nova funcionalidade é enviada apenas para parte da base de usuários com o intuito de medir a discrepância entre ambas as partes e avaliar qual a melhor estratégia deve ser seguida no ciclo de desenvolvimento. E isso, por mais básico que pareça, é uma prática muito utilizada por grandes players do mercado. Mas como garantir a qualidade do código com tantos deploys diários? Em grandes empresas como Booking, por exemplo, todos os desenvolvedores têm acesso ao código e tem total liberdade para fazer deploys e testes em produção. Aliás, algo que eles incentivam na empresa, é que


Capa // 53

até os desenvolvedores mais jovens, façam deploys no código logo nas primeiras semanas. E o mais interessante: eles torcem para que o código quebre. A ideia por trás disso é criar o sentimento de responsabilidade pelo produto, incentivar o desenvolvedor dando a ele autonomia e, principalmente, criar uma cultura organizacional forte entre todos os membros do time, fortalecendo que todos são igualmente responsáveis pelo produto e pelas decisões.

As ferramentas Quando falamos de ferramentas para engenharia de software, precisamos ter em mente que este é um cenário extremamente volátil e robusto. A ES é norteada pela demanda do mercado, pela concorrência e pelas pesquisas feitas por empresas e pela academia. Temos alguns pontos técnicos imprescindíveis no desenvolvimento de ferramentas, o que é o caso da automatização dos processos. Muitos players do mercado seguem a premissa: automatize tudo o que for possível. Essa prática aumenta, e muito, a entrega do software, a qualidade e os deploys diários. A automação de tarefas rotineiras é imprescindível e a automação de testes é algo mandatório, afim de garantir a qualidade do software das empresas. Algumas ferramentas muito utilizadas no ciclo de desenvolvimento de software para automação são o Jyra, jenkins e ansible. Entretanto, se você se concentrar apenas nas práticas tecnológicas das ferramentas, sua empresa corre o risco de perder mercado. Muitos desenvolvedores acabam esquecendo a parte principal da aplicação: o usuário. É o cliente, muitas vezes, que demanda a necessidade de evolução do

código, das interfaces, da entrega e do processo como um todo. É necessário entender como funciona o processo humano do nosso sistema a fim de transformá-lo em uma ferramenta de sucesso. A cada novo desafio proposto pelo mercado, surgem novas formas de pensar e construir software. Os métodos ágeis são um bom exemplo dessa resposta da indústria de software aos desafios de flexibilidade e agilidade requerido pelo mercado. “A indústria de software passou e continua passando por transformações. Os métodos ágeis trouxeram uma avalanche de ferramentas e práticas para as empresas. Foi preciso aprender essa nova maneira de produzir software”, firmou Sambinelli. Como levantando pelo especialista, o mindset Lean, em sua premissa de identificar o que é valor para o cliente, também é uma prática mandatória no mercado da engenharia de software. Você já se perguntou por que o Uber, Booking e Netflix fazem tanto sucesso? Porque além de incorporar boas práticas de programação e a metodologia ágil, eles dão muito valor a experiência do usuário na utilização dos seus sistemas. Pensando nisso, algumas empresas já estão desenvolvendo algo que é chamado de design antecipatório. Um exemplo interessante do design antecipatório é o seguinte: Imagine a sua experiência ao utilizar o Uber. Agora, imagine que você não tem mais a necessidade de pegar o seu celular para chamar um carro. Segundo a ideia do design antecipatório, o Uber, por exemplo, teria acesso a sua agenda de compromissos e a alguns dados pessoais, como o local aonde você mora. Assim, a empresa saberia quando e onde você precisaria de um carro, enviando-o sem que seja necessário solicitá-lo por meio do aplicativo.


Capa // 54

A engenharia e a comunidade Como falado anteriormente, a ES tem evoluído de uma maneira feroz graças a demanda do mercado e a concorrência, entretanto, sabemos que boa parte dessa evolução tem sido garantida por meio da contribuição da comunidade. “Acredito que as adaptações normalmente são reações às provocações dos próprios cliente, seu desafios e anseios, bem como, de um monitoramento constante do que está acontecendo com o mercado e os concorrentes. Há um conceito que vem do lean chamado Gemba, que indica o local onde ‘as coisas acontecem de fato’; o local de trabalho efetivo. Os gestores das empresas precisam constantemente estar em contato com a Gemba; precisam sair dos escritórios e do ar-condicionado para potencializar as inovações que brotam desse ambiente”, ponderou Sambinelli. Atualmente, muitas empresas mantêm um techblog voltado para a divulgação dos conhecimentos adquiridos em ES. Muitas vezes, as empresas também abrem suas ferramentas para a contribuição da comunidade. O que demonstra o valor destas

empresas no mercado e enaltece a necessidade do desenvolvimento das comunidades e a importância do open source para o mercado. Como exemplo desse modelo de aproximação ES com comunidade temos, além do Uber, Booking e Netflix, o GitHub, StackOverflow e Facebook. Ainda nesse princípio de potencializar as inovações e trabalhando em cima do Gemba, códigos do GitHub, webinars, palestras, dojo, hackatons, artigos e discussões sobre boas práticas, frameworks e metodologias também têm garantido a evolução desta ciência. Existem alguns fóruns específicos voltados para essa ciência, como o Fórum da “Viva o Linux”, entretanto, não se encontra comunidades propriamente ditas, como encontramos em linguagens de programação como Java, Go, PHP, JavaScript, Node.JS, Ruby, Android e Python, por exemplo. Como empresa dedicada ao fomento do conhecimento na comunidade de desenvolvedores, o iMasters está sempre à disposição da comunidade e promove iniciativas de discussões para o fortalecimento desta e outras ciências. Você tem interesse em contribuir para o crescimento da área? Participe da comunidade iMasters, estamos ansiosos para recebê-los!


55 // Segurança

Race condition em aplicações web: você está seguro? Por Marcos Ferreira, Analista de segurança do Site Blindado

A segurança é uma área extremamente sensível quando falamos de aplicações web e servidores. Em um universo onde praticamente tudo converge para o digital, pessoas mal-intencionadas buscam por brechas de segurança, em diferentes aplicações, que deem a elas informações sensíveis ou acessos que não lhes foram atribuídos de forma oficial. Muitas vezes, essas vulnerabilidades não são vírus, malwares ou comandos “injetados” na aplicação, elas podem ser falhas do próprio sistema que, de alguma forma “facilitam” o trabalho dessas pessoas - justamente o que ocorre com o race condition, assunto deste artigo. Para contextualizar e ajudar na compreensão, antes de explicar do que se trata, vou falar um pouco sobre vulnerabilidades, OWASP e Pentest.

Necessidade de cuidados com segurança de aplicações Esse cenário citado no início do texto, em que existem várias pessoas mal intencionadas buscando por falhas em segurança da informação, cria a necessidade de cuidados contínuos com a questão de segurança, principalmente com foco na realização de testes específicos, que têm como objetivo

tornar as aplicações mais seguras. Os testes mais indicados são: scan automatizado e penetração manual: • Automatizado - que é quando um determinado software realiza a busca por falhas nas aplicações e entrega relatórios sobre as que foram identificadas. • Manual (Pentest) - quando um especialista em segurança realiza auditoria manual no site, identificando brechas e as formas como elas podem ser exploradas. Geralmente, o Pentest é realizado após a análise automatizada.

Testes baseados na tabela OWASP Geralmente, quando pensamos em segurança para aplicações web, é comum que os parâmetros sejam baseados no top 10 do OWASP (Open Web Application Security Project) - que teve sua última versão divulgada em 2013. A tabela OWASP é uma lista que indica as principais vulnerabilidades identificadas por algumas das maiores autoridades em segurança do mundo, ou seja, aquelas que são utilizadas com maior frequência em aplicações. Os testes, geralmente, têm como referência essa tabela. Usar o OWASP como “norte” é sempre um bom caminho, mas nessa lista não estão


56 // Segurança

incluídas algumas vulnerabilidades importantes; portanto, ela não pode ser a única referência do profissional de segurança. Nesse caso, o Pentest se torna um grande aliado. Ele auxiliará, por exemplo, na identificação de outras brechas a que aplicações web podem estar expostas, e que não estão no TOP 10 OWASP - uma delas é justamente o “race condition”. Você já ouviu falar dele?

O que são race conditions e suas aplicações mais comuns? Atualmente, existem dois tipos diferentes de aplicações race condition que podem ser exploradas:

Time-of-check–time-of-use (TOCTOU): normalmente é utilizada com

o objetivo de afetar aplicações web. O time-of-check-time-of-use não envolve a utilização de arquivos, e pode ser aplicado a qualquer mecanismo de armazenamento de dados ou comunicações que não executam operações atômicas. O ataque ocorre quando duas ou mais tarefas tentam acessar um recurso compartilhado, o que, involuntariamente, produzirá resultados diferentes do esperando com a requisição. Não existe uma trava ou sincronização dos dados, o que acaba ocasionando a inconsistência no resultado e gerando o ataque de race condition. É como se duas máquinas fizessem a solicitação a um servidor pela mesma linha de comunicação. Exemplo: a tarefa #1 irá armazenar o valor “100” em um determinado local, esperando que, algumas instruções mais adiante, esse valor esteja lá. Uma vez que a tarefa #2 está sendo executada ao mesmo tempo que a tarefa #1, a tarefa #2 poderá sobrescrever o local da memória com outro valor,

enquanto a tarefa #1 espera que o valor seja 100. Algumas vezes, isso pode acontecer e outras vezes não; isso irá depender se a tarefa #2 conseguirá atuar durante esse tempo.

Signal Handling: essa é outra forma de

realizar os ataques de race condition. Ela ocorre quando os sinais do sistema operacional para um, ou entre dois processos, são utilizados para encerrar um processo ou reiniciá-lo. Recentemente, uma famosa rede de cafeterias teve um caso vazado e conhecido em todo o mundo. Um pesquisador de segurança conseguiu manipular os valores do cartão presente vendido pela loja por meio da aplicação web a qual ele estava atrelado.

Como evitar o race condition Para evitar os ataques de race condition, será necessário certificar-se de que as seções críticas de sua aplicação web são executadas com uma instrução atômica. Isso significa que, uma vez que a tarefa esteja em execução, outras tarefas não podem executá-la até que a primeira deixe a seção, que é crítica. Quanto à identificação do ataque, é preciso ficar atento ao tempo de resposta da aplicação - se ele estiver devolvendo o comando com um tempo diferente do usual, é necessário realizar os testes citados no início do texto. Se realmente sua aplicação web estiver exposta a essa vulnerabilidade, a única saída será alterar as linhas de código que apresentam esse problema. Cabe, depois dessa alteração, a contratação de serviços como o Code Reviews, que é uma análise de segurança sobre as linhas de código de uma aplicação, o que diminui as chances de se tor-


57 // Segurança

nar vítima desse tipo de problema no futuro.

Quanto à identificação do ataque, é preciso ficar atento ao tempo de resposta da aplicação - se ele estiver devolvendo o comando com um tempo diferente do usual, é necessário realizar os testes citados no início do texto Segurança sempre será um assunto delicado, que merece a atenção das organiza-

ções, mas ela não precisa ser (ou se tornar) um “bicho de sete cabeças”. Com atualizações constantes do sistema e testes periódicos de segurança, as chances de exposição de uma aplicação web são reduzidas, o que diminui falhas como o próprio race condition.

MARCOS FERREIRA Tem 13 anos de experiência na área de Segurança da Informação, ampla experiência com análise de vulnerabilidades, testes de invasão e auditoria. É responsável por trazer ao Brasil a primeira certificação CVE. Atuou durante quatro anos (2004-2007) no quadro de profissionais selecionados pelo SANS Institute para descrever anualmente as próximas tendências de ataques na Internet e as vulnerabilidades mais críticas.

marcos.ferreira@siteblindado.com.br


58

Drops do mercado

Conhecimento, formação e certificação oficial em um só lugar Tirar uma certificação oficial nas melhores linguagens e ferramentas não só te torna um especialista, como também ajuda na hora de conseguir empregos ou promoções. É por isso que a Impacta oferece diversos cursos preparatórios para as certificações mais concorridas e procuradas pelas empresas, te ajudando a conhecer as técnicas e práticas para conquistar o sucesso. Além disso, conta com o maior Centro de Exames Prometric da América Latina para que você aprenda com o curso, realize a prova e tire o seu certificado em um só lugar. A Impacta conta ainda com o ICS - Impacta Certified Specialist, que são certificações próprias nas áreas de TI, Gestão e Desenvolvimento. O ICS é reconhecido pelo mercado brasileiro como sinônimo de uma formação completa e de qualidade.

Novas Integrações Gerencianet A Gerencianet lançou, recentemente, uma série de novas integrações para e-commerce e também para gerenciadores de provedores. Os novos módulos para e-commerce são compatíveis com as versões mais atuais de cada plataforma: Wordpress (WooCommerce), Magento, PrestaShop, OpenCart, WHMCS e Joomla (VirtueMart). A nova integração para provedores de internet é a Radiusnet. A documentação completa está disponível na seção Desenvolvedores do portal. Outra novidade é a disponibilização de um novo layout para boletos e lâminas de carnê. Mais moderno e transparente, o modelo atual tem o objetivo de proporcionar mais transparência nas cobranças, deixando as informações mais destacadas e mais fáceis de serem visualizadas pelo cliente. Além disso, o sistema possibilita a emissão de boletos registrados sem a tarifa de registro. Assim a cobrança de tarifa acontece apenas em caso de pagamentos confirmados. Para saber mais, acesse gerencianet.com.br

Portabilidade telefônica para a Vono A Telefônica Vivo vai encerrar o serviço de voz sobre IP Vono, herdado da GVT, no dia 30 de setembro, conforme nota no site da Vono. A Directcall pode ser uma alternativa interessante: além de portar linhas em todas as 490 cidades Vono, ela fornece linhas telefônicas onde o cliente pode escolher gravar ligações na própria operadora, envio e recebimento de SMS integrado com e-mail e REST APIs que permitem gerenciar linhas fixas ou IP a partir de softwares, a partir do que um DESENVOLVEDOR pode automatizar voz, SMS e gravação telefônica em APLICATIVOS que controlam vendas, suporte ou gestão “em minutos”.

UOL HOST lança integração com GitHub O UOL HOST, unidade de hospedagem, serviços web e cloud computing do UOL , acaba de lançar integração entre sua Hospedagem de Sites e o GitHub. A integração que pode ser feita diretamente pelo painel do cliente, possibilita que o usuário importe para a hospedagem os conteúdos que ele possui em repositórios no GitHub. Agora, o cliente pode se preocupar somente com o desenvolvimento e contar com a facilidade de transferir seus projetos para o UOL HOST com apenas um clique. Para saber mais, acesse: uolhost.com.br/hospedagem


59 // Sr. Conteúdo

Presença digital: 20 coisas que aprendi em 20 anos Por Bruno Rodrigues, Consultor de Informação e Comunicação Digital

Você vê de tudo em uma década. Basta olhar para trás (exato, estou falando com você!) e notar que dez anos é muito tempo para um século acelerado como o nosso.

rem para novas ferramentas como o Instragram Stories e cismarem que poderiam fazer o mesmo que os outros em seus perfis (nem sempre podem).

Sabemos que acompanhar mudanças não é para iniciantes, embora nós, brasileiros, tenhamos talento nato para lidar com cenários que mudam a um piscar de olhos. O que ninguém – e neste caso, no mundo inteiro – ainda se acostumou (é difícil, mesmo) é lidar com o dia a dia e não se agarrar a certezas absolutas.

Em vinte anos, aprendi que os fracassos não apenas os nossos, mas os dos outros, também, infelizmente - servem para mudar o curso que nos levam às vitórias (afinal de contas, é lá que queremos chegar, não é?).

Viver em meio a transformações com humildade - ‘o ego pendurado atrás da porta’, como costumo dizer - é um desafio. Para mim não é nada fácil; imagino que o mesmo aconteça com você. Observar, apenas, tentando aprender será sempre um desafio.

Por isso, listei abaixo os pontos essenciais para lidar com um jogo de tabuleiro em eterna turbulência, em que as peças trocam de posição a todo instante. A estratégia principal - lembre-se! - é a humildade, e o primeiro passo é esquecer o ego por alguns instantes. Boa sorte!

Quando o cenário não é apenas uma década, mas duas, o cuidado a tomar deve ser ainda maior – no meu caso, todo o tempo de vivência no mercado digital.

1. Você é uma marca, não um adolescente que precisa fazer tudo o que seus amigos fazem. Portanto, se não sabe exatamente o porquê de estar no meio digital, não o faça.

Vi muitas marcas surgirem na web e desaparecerem em poucos meses. Empresas adotarem blogs corporativos que sairiam do ar em semanas. Companhias embarcarem nas recém-criadas mídias sociais só porque os concorrentes faziam o mesmo. E, mais recentemente, grandes corporações olha-

2. Perceba o momento certo de fincar bandeira no território online. Criar justificativas aparentemente ‘estratégicas’ é meio caminho andado para dar errado. 3. O meio digital não é como uma lanchonete, em que você pede um combo tipo


60 // Sr. Conteúdo

‘fan page no Facebook + conta no Twitter + Instagram’. Nem sempre dá para abraçar o mundo com as mãos - aceite. 4. Especialmente em momentos de crise, você precisa de uma equipe grande para cuidar de cada um dos canais digitais. Entenda: gente que produza conteúdo. 5.  Monitorar é bem diferente de cuidar. Quem cuida produz (conteúdo); quem monitora analisa (reações). 6. Monitorar é interagir. Traduzindo: responder a ‘cada-uma-das-questões-que-cada-um-dos-usuários-levantou’. 7. Não, não é moderno ou descolado deixar de responder a ‘cada-uma-das-questões-que-cada-um-dos-usuários-levantou’. 8. Não, o usuário não precisa entender que você, por ser uma marca ocupada (insira um emoji com óculos escuros aqui), não pode interagir com ele. 9. Se você não responde a ‘cada-uma-das-questões-que-cada-um-dos-usuários-levantou’, é porque você não tem dinheiro para colocar gente que possa interagir com o público, simples assim. Ou então não entende nada de presença digital - neste caso, volte duzentas casas.

10. Produzir conteúdo para mídias sociais não é criar ‘carimbos’ pré-fabricados e meticulosamente agendados para entrar tal dia, em tal segundo. Sério: seu público reconhece um conteúdo sem alma. ‘Que tal um Chamanitto para enfrentar esta segunda-feira? #Tamojunto’ (não faça isso: existe vergonha alheia de uma marca, e multidões se divertem com esses micos; eu, por exemplo). 11. A web não surgiu ontem. De certa maneira, todos os seus amigos e parentes são Analistas de Mídias Sociais. Hoje, todos querem que as marcas os surpreendam. Inclusive você. 12. Sim, sites e portais ainda existem e são muito úteis e acessados. 13.  Um site (ou um portal) é um ambiente estruturado, perfeito para conteúdos fixos. 14.  Mídias sociais são ambientes não estruturados, feitos para conteúdos flutuantes. Não viu, passou, morreu. 15.  Os dois podem conviver, com televisão e web. Ou até se misturarem de vez em quando. Mas um não mata o outro (nem precisava dizer isso, mas a gente diz). 16.  Ter personalidade não é criar personagens para interagir no Twitter, apenas.


61 // Sr. Conteúdo

“Sabemos que acompanhar mudanças não é para iniciantes, embora nós, brasileiros, tenhamos talento nato para lidar com cenários que mudam a um piscar de olhos. O que ninguém – e neste caso, no mundo inteiro – ainda se acostumou (é difícil, mesmo) é lidar com o dia a dia e não se agarrar a certezas absolutas” O pinguim do Ponto Frio - um dos maiores clichês de papo de mesa de chope sobre mídias sociais de todos os tempos - não acontece todo dia, e isso não significa que você não pode inovar (duvida? releia o número 10). 17. Tenha vergonha de fazer benchmarking antes de começar um projeto. É feio olhar para o que o coleguinha fez antes mesmo de você pensar no que vai fazer. Isso fala mal - bem mal - de você. Tenha coragem, gafanhoto, primeiro pense e depois (mas só depois) olhe para o lado. 18. O mundo digital não será o mesmo daqui a três anos, assim como não era há três. Não pense que ‘entende o mercado’ apenas porque sua marca está inserida nele. 19.  Dinheiro aplicado pressupõe resultados. É fácil falar, mas difícil pensar no dia a dia. Imagine cada post precisando gerar re-

torno. É horrível, mas that’s life (não, a gente não pensa assim o tempo todo, apenas de vez em quando). 20. Parabéns! Você chegou ao final da primeira etapa do ciclo de 147 etapas para entender o meio digital. Força, foco e fé, você chega lá!

BRUNO RODRIGUES É Consultor de Informação e Comunicação Digital, autor dos livros ‘Webwriting’ (2000, 2006 e nova edição em 2014) e de ‘Padrões Brasil e-Gov: Cartilha de Redação Web (2010), padrão brasileiro de redação online’. Também é instrutor de Webwriting e Arquitetura da Informação no Brasil e no exterior. bruno-rodrigues.blog.br | @brunorodrigues


62

Drops do mercado

Você já conhece a Conta Transparente do Moip? Utilizado por marketplaces, o novo produto do Moip foi desenvolvido para facilitar o gerenciamento entre contas. Conhecido como Conta Transparente, o objetivo é fazer com que os vendedores não tenham que criar a conta na plataforma de vendas e depois a conta Moip. Ele faz tudo de uma vez só, espelhando os dados de forma transparente. Por meio das APIs, os marketplaces podem alterar dados cadastrais, incluir contas bancárias e realizar transferências em nome do usuário final, eles têm a possibilidade de cuidar de toda a experiência dos seus vendedores com o seu look and feel. Essa integração simplifica a comunicação com os usuários em um único canal, tudo pode ser feito dentro do próprio Marketplace.

Embratel lança soluções de Armazenamento em Nuvem

Alertas de Consumo de Recursos e integração com Let’s Encrypt são novidades na Umbler

A Embratel apresenta duas novas soluções de armazenamento em Nuvem: O Cloud Storage e o Network Storage. O Cloud Storage é uma plataforma altamente escalável de armazenamento, gerenciamento e distribuição de objetos na Nuvem via acesso Internet (HTTP/S). Garante alta disponibilidade e durabilidade para o armazenamento de grandes volumes ou por grandes períodos de dados não estruturados como imagens, músicas, documentos, mídias, arquivos de e-mail, conteúdos web, entre outros. Já o Network Storage é indicado para ampliar o desempenho de sua infraestrutura e associar seus servidores Embratel a uma solução de armazenamento de arquivos de forma centralizada, baseada em plataforma NAS (Network Attached Storage), com acesso por rede privada via protocolo NFS. As duas modalidades estão disponíveis tanto no modelo sob demanda quanto no modelo valor fixo mensal para maior controle dos custos. Para saber mais, acesse www.embratel.com.br/cloud.

A Umbler, startup de Cloud Hosting por demanda para agências e desenvolvedores, comemora o lançamento de dois importantes recursos muito buscados pela comunidade. O primeiro é um sistema de alertas para quando o usuário está próximo de atingir o limite dos seus recursos contratados: “resolvemos desenvolver esse sistema de alertas, pois muitas vezes nossos clientes passavam por problemas devido ao alto consumo de recursos computacionais”, explica Marcos Artigas, engenheiro de software da startup. A partir dessa necessidade foram criadas regras para consumo dos recursos de sites, banco de dados e e-mail. No painel da Umbler, o cliente pode escolher se prefere ser notificado por E-mail, Webhook, SMS e Slack sem nenhuma cobrança a mais por isso. Além dos alertas, também foi lançada uma integração com Let’s Encrypt - que permite a todos clientes da Umbler habilitar certificado de SSL Let’s Encrypt de forma gratuita. Até o fim de 2016, a startup, que completou um ano em abril, pretende lançar a plataforma Node.js.

FIAP lança o FIAP ON: Graduação e MBA on-line A FIAP, o centro de excelência em tecnologia mais respeitado do país, apresenta o FIAP ON. Cursos de Graduação e MBA on-line com o mesmo conteúdo dos cursos presenciais. E com todas as matérias disponibilizadas em áudio, vídeo, entrevistas e infográficos. São 2 cursos de Graduação: Análise e Desenvolvimento de Sistemas e Gestão de Tecnologia da Informação. Mais 2 cursos de MBA: Gestão de Tecnologia da Informação e Gestão de Projetos com práticas do PMI. E a FIAP também oferece 9 cursos on-line de curta duração no SHIFT. FIAP ON. O aluno aprende onde quiser, quando quiser e como quiser


63 // Cloud Computing

Serviços de infraestrutura, qual a sua necessidade? Por Mário Rachid, Diretor executivo de soluções digitais da Embratel Sempre que falamos de arquitetura de soluções, algo que pode definir o sucesso ou o fracasso de um sistema é a infraestrutura da sua solução. Esteja você trabalhando com um servidor Cloud, Híbrido ou Multicloud, é preciso ficar atento às especificidades de cada modelo e qual deles se adapta melhor a sua empresa e ao seu produto.

Físico, Cloud, Híbrido e Multicloud Embora estes conceitos sejam básicos, vemos muitos profissionais da área se confundirem com as caraterísticas de cada um. Multicloud é uma mistura de tecnologias que leva em consideração a proximidade com o negócio do cliente e pessoas. Temos visto muitas empresas passando pela chamada transformação digital e que trabalham com sistemas legados. É preciso entender que cada aplicação possui um requisito diferente, mesmo requisitos de nuvem. E ainda temos a questão de que algumas aplicações não funcionam neste ambiente. Assim, Multicloud passa a fazer sentido, pois permite que sua empresa hospede suas aplicações em diversos ambientes Cloud (em nuvem) com tecnologias diferentes. Ou seja, é possível contratar vários ambientes Cloud para utilizar diversas aplicações. A nuvem híbrida, por outro lado, baseia-se em um serviço orquestrado por meio de so-

luções políticas de provisionamento, gestão e utilização de serviços de nuvem internos e externos. Aqui, a ideia é utilizar nuvens públicas e privadas. Ela elenca o que há de melhor das nuvens públicas, como escalabilidade e custos baixos, e o melhor da privada, como controle rigoroso de dados sensíveis. É uma grande tecnologia. Entretanto, deve ser encarada como uma fase de transição apenas, pois limita as companhias para explorarem a totalidade dos benefícios da Cloud pública. Alguns assuntos aos quais devemos dispensar maior atenção, quando falamos de infraestrutura de servidores, independente da solução escolhida, são: a resiliência, a segurança dos dados e a disponibilidade dos serviços. Estes itens, independentemente do tipo de serviço a ser utilizado, devem ser considerados básicos e imprescindíveis a sua infraestrutura.

Adaptação As arquiteturas que utilizam o serviço de Cloud são mais adaptáveis. Imagine a seguinte situação: você possui um e-commerce e faz uma campanha promocional em alguma mídia. Sua infraestrutura precisa estar preparada para receber um aumento considerável de acessos e garantir a boa experiência dos clientes. Caso o seu sistema fique indisponível devido ao número de acessos, o que era para ser uma propaganda de sucesso, acaba virando um case de fracasso.


64 // Cloud Computing

Caso possua um serviço de Cloud, sua empresa pode escalar o seu serviço durante um determinado período e garantir a sua estabilidade e a continuidade dos serviços, mantendo o objetivo da ação e garantindo a experiência do usuário. Após o período pré-estabelecido, sua infraestrutura volta a ter o “tamanho” necessário. Isso gera não só a total disponibilidade dos seus serviços, como também a economia para sua empresa, garantindo que você gaste apenas o necessário.

Segurança Agora imagine que você trabalhe com dados de clientes; dados bancários, por exemplo. Normalmente você já possui um acesso muito grande em seu banco, e além disso, trabalha com dados extremamente sensíveis. Aqui, a sua principal preocupação é a segurança dos dados dos seus clientes. É substancial que este tipo de serviço seja capaz de manter um backup (cópia dos dados) e subir imediatamente quando o outro servidor cair. Outra preocupação que se deve ter com a segurança nesse modelo é a manutenção criptográfica dos dados dos clientes. Quando você opta por armazenar os dados da sua empresa, ou dos seus clientes fora do seu controle, em um serviço de Cloud, por exemplo, este serviço precisa garantir a segurança fim a fim dos dados durante o tráfego na rede. Além de garantir a segurança dos seus clientes, esta prática protege você e a sua empresa de uma auditoria e de uma boa multa.

exista mais de um servidor e você não possua serviços em nuvem, é responsabilidade interna fazer o balanceamento de carga das requisições, manter a disponibilidade dos serviços e dos dados, otimizar a utilização de recursos, maximizar o desempenho e minimizar o tempo de resposta de requests. Caso sua empresa não esteja preparada para este serviço, o ideal é que contratem algum serviço de Cloud especializado para resolver estes problemas ou, então, caso o seu serviço de Cloud não ofereça essa solução, você pode contratar alguma empresa que faça essa intermediação. Outro ponto que muitos esquecem é que o desempenho não vem apenas de uma rede bem desenhada e da qualidade dos programas utilizados. Embora o nome nuvem, essa infraestrutura não cai do céu. Equipamentos robustos e data centers avançados são responsáveis por boa parte do desempenho destes serviços. Assim como quase tudo no mundo da computação, não existe bala de prata para esse tipo de serviço. A melhor infraestrutura a ser escolhida ainda depende do seu modelo de negócio, do seu produto e da sua necessidade. O importante aqui é não se ater ao passado, mas evoluir sempre o seu sistema, e ficar antenado com as novas tecnologias e soluções disponíveis no mercado.

MÁRIO RACHID Mário Rachid é diretor executivo de soluções digitais da Embratel. Formado em Tecnologia da Informação pela Pontifícia Universidade Católica – PUC-RJ, é pós-gra-

Desempenho

duado pela Fundação Getúlio Vargas. Possui mais de 20 anos de experiência no setor, tendo atuado em empresas globais líderes em seus setores como PWC, IBM e Amé-

Outro ponto com o qual precisamos nos preocupar é o balanceamento de carga. Caso

rica Móvil. Há seis anos, assumiu a Presidência da Hitss Brasil, empresa com mais 1.400 funcionários.


Drops do mercado

65

Sua ideia vale ouro! A Prime Systems acredita que boas ideias podem vir de qualquer lugar, e que não há nada que substitua a criatividade e inventividade brasileira. Por isso, criamos a plataforma PrimeBuilder, que permite que qualquer pessoa com uma grande ideia, crie e publique seu aplicativo de forma simples, rápida e flexível e contribua com os negócios das empresas brasileiras. Trazemos a vocês o concurso Produtividade Premiada, que vai premiar os melhores aplicativos desenvolvidos na nossa plataforma! Acesse e cadastre-se como Builder no site store.primebuilder.com.br. Confira os vídeos de treinamento disponíveis no canal do Youtube e desenvolva o seu projeto utilizando o PrimeBuilder. Assim que publicar seu app, já estará concorrendo a certificados em barra de ouro no valor de até R$10 mil reais! Participe! ( C.A 3-1613/2016)

Jelastic Cloud com 1 TB de transferência O Jelastic Cloud, plataforma on demand com escalabilidade automática, multilinguagem em Java, PHP e Ruby, e com Docker (tecnologia open source baseada em contêiner) agora, oferece 1 TB de transferência inclusa. Isso significa que a plataforma oferecerá, a partir de agora, mais agilidade e maior economia para seu negócio, já que estabelece os recursos mínimos e máximos, garantindo escalabilidade para sua aplicação com controle de gastos. Para desenvolveres que ainda não usam a solução e gostariam de conhecer, é possível utilizar por 30 dias a versão Trial sem nenhum custo. Você poderá criar até 3 ambientes com instâncias de até 16 Cloudlets (2 GB), 1 GB de storage, além de contar com API’s para gerenciar ambientes, monitoração de consumo e deploy rápida via GIT/SVN. Experimente o Trial do Jelastic Cloud agora mesmo. Acesse http://lwgo.to/1a1 (Com informações de Locaweb).

A casa estava em reforma: a nova cara do blog especializado em WordPress Há algum tempo a reforma do canal da Apiki vem sendo planejada, para dar aos seguidores do Apiki Blog uma melhor experiência de leitura dos conteúdos especializados em WordPress e finalmente a reforma aconteceu. O blog da Apiki está de cara nova, mas o conteúdo continua de excelente qualidade e focado no mais importante - WordPress. Todos os artigos técnicos de WordPress foram separados em categorias: desenvolvimento, infra, SEO, performance, segurança e mobile. Assim, a acessibilidade aos conteúdos do Apiki Blog torna a experiência dos leitores ainda mais proveitosa. Quando se fala em WordPress, o que vem primeiro à cabeça é plataforma para desenvolvimento de blogs, mas o WordPress foi tão longe em sua expansão que faz-se tudo na plataforma que mais cresce no mundo e para ajudar iniciantes e especialistas em WordPress, a Apiki colocou a casa em reforma. Você já pode navegar pelo novo blog e se inscrever para receber o conteúdo compartilhado por especialistas em WordPress da Apiki. https:// blog.apiki.com/.

iugu e Atende Simples lançam integração que automatiza emissão de 2ª via de boleto por telefone Pensando em escalabilidade, em redução de custos e de trabalho operacional, a solução de atendimento telefônico Atende Simples desenvolveu com a robusta API da iugu uma maneira de os clientes de negócios digitais pedirem a emissão da segunda via de um boleto iugu pelo telefone, em menos de um minuto, sem a necessidade de falarem com um atendente. A inte-ração do comprador com o fornecedor do produto ou do serviço é baseada em mensagens gravadas e automáticas, definidas na configuração da integração. O cliente recebe a nova fatura, em seguida, no email cadastrado na mesma hora. Essa automação só reflete a missão da iugu de desenvolver ferramentas que “conversem” com outros sistemas e simplifiquem a vida do empreendedor que busca uma infraestrutura financeira completa. Conheça mais sobre a integração em iugu.com/referencias/integracoes.


66 > 7Masters

Os 7Masters de junho e julho superaram as expectativas: de público, de debate e de nível dos nossos mestres. Não quer perder o próximo? Fique atento à nossa agenda e se inscreva: setemasters.imasters.com.br/agenda-2016. Confira o que aconteceu:

Node.JS O primeiro mestre, Christopher EnyTC, efalou sobre as APIs escaláveis e manuteníveis com Node.JS. Depois de três anos se dedicando exclusivamente, ele tirou um tempinho para passar suas experiências: http://ow.ly/miQT303V1o7 Product Engineer no Sprinklr, Guilherme Souza falou sobre os prós e contras dos frameworks. A lista foi grande! Confira: http://ow.ly/jP2w303V28r O consultor Node.JS, Thiago Petrellio, tratou da API REST em Node.JS. Em sua palestra, trouxe um case da atuação do Node.JS em uma grande empresa - no caso, um banco. http://ow.ly/6jdg303V1Im

“Node.JS in production” foi lestra do William Bruno. grandes dicas para os como ser sempre rápido http://ow.ly/U3nW303V1TI

o tema da paO mestre deu programadores, e assíncrono.

O criador da Lambda3, Giovanni Bassi, trouxe o PM2 nativo como foco da sua palestra, que tratou de forma macro sobre Node. JS em produção. http://ow.ly/fp6H303V24B Filipe Melo da Silva, desenvolvedor tanto front-end como back-end na Concret Solutions, falou sobre como o Node.JS vai além dos frameworks. “As pessoas estão viciadas e não sabem de tudo que o Node.JS é capaz”. http://ow.ly/4G7T303V1yR


7Masters < 67

O 7Masters é nosso encontro mensal de especialistas. Toda última quarta-feira do mês, reunimos 7 mestres de um determinado tema que, durante 7 minutos, expõe para os participantes sua experiência e vivência com o assunto da vez. Os temas são definidos pela equipe de conteúdo do iMasters, liderada pelo Alex Lattaro. Se quiser dar alguma sugestão, escreva para setemasters@imasters.com.br. Confira o que rolou nas edições passadas e quais ainda estão por vir em setemasters.imasters.com.br

DevOps Miguel Di Ciurcio Filho, quer saber: “DevOps, você entendeu certo?”. Com essa pergunta, o cofundador da comunidade Puppet Brasil trouxe o significado do DevOps, sua verdadeira atuação e função. http://ow.ly/D05T303V2I0 Thiago Dias falou sobre aplicações e infraestruturas escaláveis na AWS. O mestre já ajudou a difundir a cultura DevOps em diversos locais, como no portal da Gazeta Esportiva e em empresas como Scup e atualmente no GetNinjas. http://ow.ly/I3rl303V2mO Gleicon Moraes tratou, na sua talk, da arquitetura emergente e da forma como ela pode jogar contra tudo que se considera boa prática. Gleicon gerencia a área de Big Data e infra no Luizalabs. “No começo, DevOps era um termo pejorativo onde eu trabalhava...”. http://ow.ly/6Bn3303V2rK “Do legado ao CI/CD em 7 minutos” foi o tema da palestra do Gabriel Rodrigues Couto, que é chefe de arquitetura de software na Memed. Como trabalhar isso

em empresas com aplicações menores? http://ow.ly/2yGw303V2z7 Samuel Maciel Sampaio veio com a sua talk para simplificar o Chef, a plataforma de ferramentas para gerenciamento de configuração automatizada: http://ow.ly/KWEe303V2Ok Para quem tinha alguma dúvida, Wellington Silva veio clarificar o poder do Docker, uma das principais ferramentas do DevOps. Técnico em telecom, ele também é autor do livro Aprendendo Docker. http://ow.ly/sou0303V2Sx E por fim, Bruno F. Souza, conhecido como JavaMan, trouxe como tema “Os Piratas do DevOps: assuma a responsabilidade pela entrega!”. “É preciso ter cuidado antes de colocar em produção”, lembrou. O mestre é desenvolvedor Java e Evangelista Open Source na Summa Technologies, e Cloud Expert na ToolsCloud. http://ow.ly/b3cJ303V2WP


68 // Arquitetura de mensageria

Você sabe como distribuir melhor com Kafka? Por Breno Oliveira, Engenheiro de software no Moip Há algum tempo, o modo de construção de uma aplicação foi mudado. Houve a migração de uma grande aplicação monolítica para diversos micro serviços e, com isso, a forma que as aplicações podem ser escaladas e como são distribuídas também foi mudada. Esse era o cenário do LinkedIn quando desenvolveram o Kafka.

• Consumer: escuta um ou mais tópicos e trata mensagens publicadas;

O Kafka é um servidor de mensageria criado para ser rápido, escalável e durável, similar ao ActiveMQ, HornetQ ou RabbitMQ, permitindo que aplicações se comuniquem de maneira assíncrona. Assim, como a maioria dos outros servidores de mensageria, o Kafka foi feito para ter produtores que escrevem mensagens em tópicos e consumidores que leiam as mensagens dos tópicos. As mensagens podem ser um simples arrays de bytes e pode ser enviado qualquer formato de objetos, como JSON. O que diferencia o Kafka de outros sistemas de mensageria é o modo que lida com cada partição dos tópicos, tratando-os como um arquivo Log (conjunto ordenado de mensagens já ordenadas pela data de criação).

• Broker: processo que roda em uma única máquina;

Entenda um pouco mais como o Kafka funciona Alguns conceitos que precisam ser conhecidos: • Producer: responsável por publicar mensagens em um tópico;

• Topic: nome de um feed no qual as mensagens são públicas; • Partition offset: toda mensagem tem um id atribuído a ela;

• Cluster: grupo de brokers que trabalham juntos. A estrutura do Kafka é simples: cada tópico é tratado como um arquivo de log, ou seja, assim que um Producer envia uma mensagem, o Kafka adiciona essa mensagem ao final do arquivo de log - isto para cada tópico. O servidor Kafka define um número sequencial para cada mensagem, chamado de offset que é retornado. Quando um consumer é iniciado, faz um Pull Request para o servidor, recuperando, em particular, para um tópico específico com o maior número de offset, geralmente é um número do tópico do qual ele já tinha parado ou o tópico zero. O servidor irá verificar no log do tópico e retornar as novas mensagens que forem maiores do que o número solicitado. No Kafka, o client é responsável por saber qual era o último valor de offset para recuperar as mensagens. O servidor Kafka não gerencia as mensagens que estão sendo consumidas; por default, o ser-


69 // Arquitetura de mensageria

vidor Kafka as mantém por apenas sete dias. Através de processos que rodam em background, o servidor verifica as mensagens e as deleta após sete dias ou mais. Uma outra característica é que um consumer pode ler quantas vezes desejar uma mensagem antes dos sete dias, mas, caso haja uma falha quando o consumidor utilizar a mensagem durante os sete dias, após vencer o prazo ele irá perder a mensagem.

Como o Kafka pode ser utilizado? Maneiras mais comuns de utilizar o Kafka: • Métricas: o Kafka costuma ser utilizado para monitorar dados operacionais. Trata-se de estatísticas de agregação de aplicações com dados centralizados; • Logs: é comum achar a utilização do Kafka para fazer um log aggregation através de diversas aplicações;

que podem ser débitos e créditos da conta e com consumer pegamos mensagens desde o início do mês e realizamos a composição para esse saldo da conta bancária, deixando de ser uma coluna no banco de dados. Este ainda é um artigo bem introdutório sobre como o Kafka pode ser utilizado, mas o que deve ter uma grande atenção é que além do jeito “convencional” de consumir eventos assíncronos, podemos pensar com essa nova abordagem que o Kafka oferece, através de Events Streams.

Referências Apache Kafka -http://ow.ly/zzcB3043zNg Big data messaging with Kafka, Part 1 http://ow.ly/1iZf3043A9e Apache Kafka for Beginners http://ow.ly/e8hh3043Aez

• Stream: utilizado em conjunto com o Storm ou Spark Streaming, consomem dados de um tópico, processam ele, e geralmente, escrevem os dados em um novo tópico onde são disponibilizados para outros usuários ou aplicações.

Putting Apache Kafka To Use http://ow.ly/WeIv3043AmT

Em um banco de dados normal, os dados são armazenados em seu estado atual, porém, nesse formato são dados com acontecimentos do passado, já as ações são os eventos, por isso, é importante mudar como pensamos as nossas aplicações. Dessa forma, a maneira mais comum de utilizar o Kafka é através de Events ou Events Streams. Esse tipo de arquitetura está muito presente na área financeira para composição de saldos bancários, por exemplo.

Breno Oliveira é programador viciado, pós-graduado

BRENO OLIVEIRA pela Universidade de São Paulo, e tem trabalhado com desenvolvimento de software há mais de quatorze anos, começando com tecnologias como PHP para Web e migrando para linguagens como Ruby, Java, JavaScript and Go. Atualmente focado no desenvolvimento mobile para Android e iOS, incluindo wearables como smartwatches. Também tem uma grande experiência acumulada com Arquitetura de Software, Micro Services, DevOps, DDD, TDD, BDD e é um entusiasta com metodologias ágeis como Scrum, XP, Lean e Kanban. Atualmente, tem estudado

No caso de uma composição para um saldo de uma conta bancária, por eventos, podemos ler mensagens e essas mensagens

mais movimento de Fintechs, acumulando grande experiência no Moip e um grande entusiasmado com a criação de ferramentas para recrutamento e seleção.


70 // Criatividade Tecnológica

E-sports e os jogadores profissionais de videogame Por Fabio Lody, Diretor de Arte do iMasters Olá, meus amigos! Hoje escrevo sobre um assunto bem interessante, principalmente para os fãs de vídeo-game: e-sports! Lembro-me da primeira vez que joguei um game na vida: era o "Enduro", do Atari; um jogo no qual controlávamos um carro, semelhante a um de Fórmula 1, mas toda visão do jogo era de trás. O objetivo era ultrapassar determinado número de carros para chegar à próxima etapa. A corrida simulava um dia inteiro em diferentes condições de pista e visibilidade, como neve, noite e neblina e as pistas eram aleatórias. O jogador muitas vezes era obrigado a acelerar forte e demonstrar reflexos rápidos para desviar dos adversários mais lentos, o que se tornava cada vez mais difícil à medida que o jogo avançava. Em paralelo aos vídeo-games, os anos 80 e 90 marcaram outra febre: os jogos de Arcade (Fliperama). Era uma época fantástica! Capcom, Neo Geo e até a própria Atari foram algumas das marcas de maior sucesso. Geralmente, os fliperamas eram acionados por meio de fichas de metal, que, quando inseridas, permitiam que a pessoa jogasse por um determinado período de tempo (geralmente até acabar as vidas do personagem principal). Nessa época, surgiram os primeiros campeonatos de games do Brasil. Com o tempo, a diversão virou profissão para alguns - mesmo enfrentando muito preconceito. Nos últimos anos, a atividade

ganhou mais notoriedade e perdeu o estigma de “perda de tempo”. Por isso, graças à rotina de treinamento, campeonatos e reconhecimento, essa prática hoje é conhecida como “esporte eletrônico” e, em alguns países, como Coreia do Sul e Japão, faz até mais sucesso entre os jovens do que os esportes convencionais. Won Mun Seong, conhecido pelo nome de MMA no mundo dos e-sports, lembra que seu sucesso veio com muito esforço. Em entrevista à BBC News, em 13 de dezembro de 2015, MMA falou de sua rotina: “Normalmente, pratico de 10 a 12 horas por dia. Acordo tarde (por volta das 10h) e depois do café da manhã, treino das 11h às 17h. Então, janto e volto a treinar até as 22h. Faço um rápido intervalo e continuo até as 2h. Só então vou para a cama”. Outro jovem conhecido no mundo dos e-sports é Ji Sung Choi. Na mesma entrevista, ele contou que tem uma rotina parecida com a de Seong. “Acordo às 10h, tomo café da manhã e treino até as 17h. Faço um intervalo entre as 17h e as 19h. Treino até a meia-noite e vou para a cama às 3h”.

Salário Todo esse esforço tem sua recompensa: jogadores como eles ganham prêmios que ultrapassam os US$ 200 mil, fora o patrocínio de grandes empresas do ramo. “Quando era


71 // Criatividade Tecnológica

mais novo e passava horas jogando, meus pais sempre me tiravam o computador. Chegaram até a quebrá-lo. Mas hoje eles me apoiam - quando estou treinando preparam até lanches para mim”, contou Choi a BBC News.

Mercado Atualmente, e-sports movimentam muito dinheiro. Não só para jogares/treinadores, mas para indústrias, como a de entretenimento, que acabam faturando com a popularização do setor. O comentarista Nick Plot, conhecido como Tasteless, é um bom exemplo: nascido nos Estados Unidos, ele vive em Seul e fatura narrando competições de e-sports. “Basicamente, meu trabalho consiste em explicar o que está acontecendo e torná-lo mais palatável ao espectador comum, então falamos sobre as estratégias, mas tentamos evitar terminologias muito específicas desse universo. Também tentamos interagir com nossos espectadores”, explicou a BBC News.

Futuro Para Choi, no futuro, os torneios eletrônicos serão tão populares quando o futebol, por exemplo. “O esporte eletrônico é uma competição emergente. Daqui a alguns anos será igual a grandes eventos como futebol, basquete ou beisebol”, aposta. Apesar disso, o jovem, que tem quase 30 anos, teme perder espaço para jogadores mais novos e com um raciocínio mais rápido, como acontece nos esportes famosos. Com o envelhecimento, as chances de perder espaço se multiplicam. O narrador Dan Stemkoski, conhecido como Artosis, acredita que a visão de que o vide-

ogame seja uma perda de tempo está mudando. “Meus pais certamente pensaram nisso quando eu treinava todos os dias, mas acho que se você pensar bem, trata-se de algo que pode ser mais aceito. É um esporte que está se tornando mais respeitado, está se tornando mais profissional e se espalhando”, opina, afirmando que não se trata de um esporte para preguiçosos. “Você precisa ter um estilo de vida saudável. Você precisa tentar exercitar sua mente e falar com outras pessoas, não pode viver como um ermitão”.

Riot Games A Riot Games foi fundada como um estúdio de jogos independente, em 2006, por Brandon “Ryze” Beck e Marc “Tryndamere” Merril, em Los Angeles. A empresa anunciou o seu primeiro jogo, o League of Legends: Clash of Fates, em outubro de 2008 e lançou o jogo em outubro de 2009 simplesmente como League of Legends. O jogo é hoje um dos maiores games online de PC do mundo: mais de 67 milhões de pessoas o jogam todos os meses.

Blizzard Entertainment A Blizzard Entertainment é uma editora e produtora de jogos de computador e de videojogos americana. Fundada em 1991, sob o nome de Silicon & Synapse por Allen Adham, Michael Morhaime e Frank Pearce, em Irvine, California, EUA. Antes de iniciar seus trabalhos na área de jogos para computador, criou alguns jogos para Super Nintendo e Mega Drive. Alguns desses jogos foram o Rock ‘n Roll Racing, The Lost Vikings, Blackthorne e The De-


72 // Criatividade Tecnológica

ath and Return of Superman. No ano de 1994, estabeleceu sua marca como sendo Blizzard Entertainment e rapidamente ganhou popularidade e respeito na área de jogos de computador. Atualmente, a empresa é composta por mais de 4700 profissionais, entre designers, produtores, programadores, artistas e engenheiros de som.

No Brasil O Brasil já possui equipes vencedoras nos circuitos de e-sports, como é o caso da equipe Pain, de São Paulo. Atletas com idade entre 20 e 25 anos chegam a contar com R$ 30 mil de renda mensal. Além de uma rotina parecida com os jogadores já citados, costumam malhar em uma academia próxima ao centro de treinamento e isso é uma obrigação do contrato com a Pain. No almoço, um cardápio é pré-estabelecido por uma nutricionista. Sentados em computadores de altíssimo nível, em cadeiras desenhadas para quem joga continuamente (com alto-falantes no encosto, por exemplo), e munidos de teclados e mouses top de linha, além de equipamentos de dar inveja a qualquer fã do gênero, eles passam quase 8 horas treinando. Parte do tempo, jogam para valer, aprimorando táticas. Após a exaustiva rotina de treinos, muitos jogam videogame, às vezes outros títulos, como os de tiro ou gravam vídeos para o YouTube. Como em todo esporte, para viver no topo, os atletas precisam de dedicação. Eles são gamers, mas precisam seguir uma vida regrada, sem se afetar pelas centenas de milhares de fãs que os seguem em redes

sociais, ou pela conta bancária cada vez mais gorda. No Brasil, o game mais famoso neste sentido é o League of Legends, graças ao suporte dado pela produtora Riot Games em torneios oficiais, como o Campeonato Brasileiro, ou CBLoL, como também é chamado. Jogos como Counter-Strike, Street Fighter e Fifa também possuem torneios locais, porém menores. Além disso, eventos como o Brasil Mega Arena e Brasil Game Show promovem seus próprios torneios de e-sports, contemplando diferentes jogos e com premiações variadas. Embora existam torneios para consoles de mesa e vídeo games portáteis (como o de Pokémon), o cenário realmente competitivo é nos jogos de computador. No entanto, as mudanças no e-sport são rápidas e constantes. Não dá para saber o que será a nova tendência e o que perderá peso competitivo daqui a seis meses. Apenas uma coisa é certa: o e-sport se estabelece cada vez mais como um caminho profissional inquestionável como qualquer outra categoria de esporte.

FABIO LODY é Diretor de Arte do iMasters e colunista de Photoshop. Participou da equipe de criação de projetos como Lollapalooza Brasil, Centenário do Santos, Centenário Vinícius de Moraes, Futebol Run, Expo Money, Super Bike Series, Galinha Pintadinha, entre outros. Conquistou o Best Mkt Design 2012 com a marca do centenário do Santos. É praticante de Krav Maga e está há 14 anos nessa vida maluca de subir/descer a serra todos os dias por morar em Santos.@fabiolody


74 // Web semântica G IN PP O LE SH SA

O problema da web atual e a Web Semântica Por Diego Eis, Coordenador de Times de Produtos na Locaweb

Por que precisamos da Web Semântica? A Web de hoje não é suficiente? Essas são perguntas que qualquer um se faz quando começa seus estudos sobre Web Semântica. Para entender um pouco mais, precisamos de um pouco de história.

A Web 1.0 A Web 1.0 foi a primeira fase da Web. Nela, a única função do usuário era consumir. A ideia dessa primeira fase foi realmente organizar a informação de forma que ela ficasse disponível para o consumo de qualquer usuário que estivesse conectado à Internet. Mesmo assim, a Internet ainda era uma plataforma de mão única, na qual os usuários apenas consumiam o que era criado e produzido por outros. Hoje vemos como um problema essa fase da Web ter sido apenas unilateral, ou seja, uma parte comanda o que será consumido pela outra parte. Mas, a meu ver, as pessoas não estavam preparadas para produzir conteúdo como estiveram na Web 2.0, que veremos a seguir.

A Web 2.0 e o problema atual da web Essa fase mudou a Internet da água para o vinho. A Web se tornou uma plataforma de

compartilhamento e criação de conteúdo para os usuários. Desde um simples blog, que alguém comum pode fazer para publicar seus conteúdos, permitindo que qualquer pessoa comente sobre o assunto, até as grandes redes sociais, que criaram uma plataforma completa para que seus usuários pudessem produzir conteúdo e expor suas opiniões. Você já deve ter ouvido falar sobre Mashups. O nome não é mais tão usado assim atualmente, mas lá entre 2006 e 2008 as Mashups apareceram e morreram. Hoje, o que chega mais perto dessa ideia são serviços como o IFTTT (If This Than That), Zapier e Piesync, que utilizam as APIs abertas de diversos sistemas online para que eles trabalhem para você. Depois disso, a Web começou a ser tratada como uma verdadeira plataforma na qual os sistemas não teriam uma versão específica, pois estariam sempre evoluindo e ainda trocando informações entre si.

A Web 3.0, o início da Web Semântica e da Internet das Coisas Experimente procurar no Google a palavra “Manga”. O Google não sabe se esse termo se refere à fruta, a uma parte da sua roupa

5%

-7


75 // Web semântica

ou ao mangá japonês. Aqui aparece uma série de resultados misturados, sobre os três assuntos. Isso acontece porque a máquina não tem o contexto da sua busca. A Web 3.0 é o que chamaríamos de Web Semântica. Muitos estudiosos falam que ela é uma extensão da nossa web atual, na qual os usuários não apenas lerão e produzirão conteúdo, mas usarão as máquinas para relacionar e reutilizar esse conteúdo da melhor maneira possível. A Web Semântica é baseada na ideia de que o conteúdo deve ter uma descrição digital, padronizada por vocabulários e que provê meios para as máquinas (robôs, sistemas etc.) entenderem do que se trata esse conteúdo, ou seja, criando algum contexto para que as máquinas consigam utilizar esses dados. Mas como fazemos isso? Estruturando os dados. Para entender sobre essa estruturação de dados, não podemos deixar de falar sobre o RDF.

O conceito Linked Data O termo Linked Data se refere a um pacote de boas práticas para publicar e conectar dados estruturados na Web. Duas tecnologias suportam esse conceito e fazem parte dos fundamentos da Internet: URI, que serve para identificar fontes, e HTTP, para localizar e descrever essas fontes de informação. Acima dessas duas tecnologias bases, estão outras que fazem a parte dura de conexão e estruturação desses dados, como o RDF. O HTML provê uma estrutura e link para documentos na Web, o RDF provê um modelo de dados genérico que estrutura e conecta o que descreve coisas, como lugares, pessoas, objetos etc.

O conceito de Linked Data é baseado em 4 regras. Essas regras foram escritas em 2006 pelo Tim Berners-Lee e não devem caducar tão cedo, já que elas estão intimamente ligadas à base e aos fundamentos da Internet. São elas: • Use URIs para nomear as coisas; • Use HTTP URIs para que pessoas possam procurar essas coisas; • Quando alguém procurar uma URI, disponibilize informação útil, usando padrões como RDF; • Inclua links para outras URIs de forma que haja relacionamento entre as fontes de informação.

Simples: identifique, dê um endereço de localização, disponibilize informação e conecte usando links. Já é mais ou menos como a Internet funciona hoje e como a Web é baseada. Nós sempre entramos e localizamos fontes usando URIs (mais especificamente URLs), conectamos com links, mas não disponibilizamos a informação que temos nos sites de forma que seja reutilizável por outras máquinas e pessoas.

O que é RDF RDF é a abreviação de Resource Description Framework. RDF estende a estrutura de conexão de informação na Internet quando relacionamos e nomeamos coisas via URI. Nós chamamos isso de Tripla. Esse modelo permite que estruturas de dados sejam misturadas e compartilhadas em diversas aplicações.

Modelo de dados do RDF O RDF permite fazer declarações sobre recursos. O formato dessas declarações é bem simples e sempre segue a estrutura abaixo:


76 // Web semântica

Sujeito > Predicado > Objeto

Como um grafo pode ser visualizado

Essa declaração expressa a relação entre duas fontes. O sujeito e o objeto representam as duas fontes que serão relacionadas. O predicado representa a natureza dessa relação. A relação é formulada na direção do sujeito para o predicado, que no RDF é chamada de propriedade. As declarações do RDF são chamadas de Triplas (ou Triples, em inglês), porque são compostas por esses três elementos: sujeito, predicado e objeto.

Essa é a melhor forma de ver a relação entre informações. Uma vez tendo gráficos formados dessa forma, você pode usar tecnologias de queries, como o SPARQL, para manipular o conteúdo dos dados relacionados com RDF.

Para ficar mais fácil de entender as Triplas, veja algumas expressões abaixo: Diego > é uma > pessoa. Diego > é casado com > Marcela. Diego > nasceu em > 03 de dezembro de 1983. Diego > é interessado na > Amazon. Amazon > foi criada pelo > Jeff Bezos.

O livro A Loja De Tudo > é sobre a > Amazon. A mesma fonte é referenciada em múltiplas Triplas. Nesses exemplos, Diego é o assunto em quatro Triplas, e a Amazon é o assunto de um trio (5) e o objeto de dois (4 e 6). Essa possibilidade de ter a mesma fonte como sujeito e objeto em várias Triplas é o que possibilita encontrar conexões entre as Triplas.

Estrutura da Tripla Esse tipo de estrutura de relacionamento do RDF permite formar um gráfico, que é a melhor forma para visualizarmos as conexões entre as fontes de informação. Esses gráficos consistem em nós e setas. Os sujeitos e objetos são os nós no gráfico.

Como vimos anteriormente, um grafo é formado por uma coleção de caminhos formados por nós que se conectam por meio de predicados (setas) com outros nós. Em RDF/ XML, esse conceito se declara com elementos dentro de elementos, onde os elementos são os nós. A documentação do W3C dá um exemplo: <?xml version=”1.0”?> <rdf:RDF xmlns:rdf=”http://www. w3.org/1999/02/22-rdf-syntax-ns#” xmlns:dc=”http://purl.org/dc/elements/1.1/” xmlns:ex=”http://example.org/stuff/1.0/”> <rdf:Description rdf:about=”http:// www.w3.org/TR/rdf-syntax-grammar” dc:title=”RDF/XML Syntax Specification (Revised)”> <ex:editor> <rdf:Description ex:fullName=”Dave Beckett”> <ex:homePage rdf:resource=”http://purl.org/net/dajobe/” /> </rdf:Description> </ex:editor> </rdf:Description> </rdf:RDF>

O RDF/XML permite que usemos o atributo xml:lang para definir a identificação do idioma usado nos dados. Esse atributo pode ser usado em qualquer elemento nó ou proprie-


77 // Web semântica

dade para determinado conteúdo que está em um idioma específico.

vão te ajudar a entender o que eu quero dizer: http://bit.ly/hans-rosling-best-stats-ted.

Fica mais ou menos assim:

Ter os dados abertos, em formatos acessíveis, significa fazer com que as máquinas façam o trabalho pesado para nós. O Hans Rosling pegou esses dados, cruzou todos eles e deu respostas para perguntas que milhares de cientistas sociais nunca tinham feito em toda a vida.

<?xml version=”1.0” encoding=”utf-8”?> <rdf:RDF xmlns:rdf=”http://www. w3.org/1999/02/22-rdf-syntax-ns#” xmlns:dc=”http://purl.org/dc/elements/1.1/”> <rdf:Description rdf:about=”http://www. w3.org/TR/rdf-syntax-grammar”> <dc:title>RDF/XML Syntax Specification (Revised)</dc:title> <dc:title xml:lang=”en”>RDF/XML Syntax Specification (Revised)</dc:title> <dc:title xml:lang=”en-US”>RDF/XML Syntax Specification (Revised)</dc:title> </rdf:Description> <rdf:Description rdf:about=”http://example. org/buecher/baum” xml:lang=”de”> <dc:title>Der Baum</dc:title> <dc:description>Das Buch ist außergewöhnli-

Distribua seus dados. Não importa se você só tem um blog pessoal. Use algum formato de estruturação de dados para facilitar a distribuição do seu conteúdo. Se você trabalha em um site de conteúdo, pense em servir esse conteúdo para máquinas e robôs. Se você faz parte do governo, pense em como você pode contribuir para o conceito de Open Data. Não posso finalizar este artigo sem indicar o vídeo do Tim Berners-Lee no TED, falando sobre a próxima web e dados abertos. Então, aí vai: http://www.ted.com/ talks/tim_berners_lee_on_the_next_web

ch</dc:description> <dc:title xml:lang=”en”>The Tree</dc:title> </rdf:Description> </rdf:RDF>

Lembre-se de que o RDF é só um framework, isso quer dizer que novos formatos existem, que se baseiam no conceito do RDF de Triplas para relacionar informação. Dois exemplos: RDFa e JSON-LD. Esses dois tipos de dados estruturados são bem comuns, sendo que JSON-LD é altamente compatível com os sistemas de busca.

DIEGO EIS

Concluindo A Web é um lugar onde todos os dados importantes circulam. Assista ao vídeo do Hans Rosling. São apenas 19m50 de vídeo que

é criador do Tableless.com.br e Coordenador de Times de Produtos na Locaweb

diego@tabeless.com.br


78 // Computação Cognitiva

Computação Cognitiva: Nossa Auto-Evolução Programada? Por Fernando Rychlewski, Community Manager do iMasters Existe uma frente tecnológica que está sendo capaz de mover, ao mesmo tempo, gigantes como IBM, Microsoft, Google, Cisco, AT&T, Amazon, Apple, CIA e NASA, todas na mesma direção. Essa frente é tida como a maior promessa de evolução da história da humanidade, e não só mais uma batalha comercial pelo consumo, vamos entender o porquê.

ção. Na nova era, o que era ficção e utópico para Vemor Vinge foi traduzido na Lei de Moore, criada pelo fundador da Intel quando tratou do tema: “O poder computacional dos processadores dobrará de capacidade, mantendo-se os mesmos custos a cada 16 meses”. Essa lei está em vigor há 30 anos e ainda não foi quebrada.

Vemor Vinge certa vez idealizou um momento em que a humanidade atingiria uma velocidade de evolução tamanha, que as tecnologias se tornariam auto-inventáveis, automáticas e instantâneas. Esse momento é conhecido como Singularidade Tecnológica: se você tiver uma necessidade, a tecnologia para supri-la ou já existirá, ou será criada na hora para você; praticamente sob demanda (TaaS? Technology as a Service?).

Estamos duplicando a capacidade computacional a cada 16 meses ou menos, exponenciando as possibilidades e pesquisas em uma velocidade inimaginável, impactando diretamente na aceleração da criação de novas tecnologias e, consequentemente, em formas de otimizar os processadores e manter a lei.

Para esse momento ser atingido, precisamos de alto poder computacional à disposi-

A quantidade de patentes registradas cresce a um nível até superior ao do processamento, como podemos ver no gráfico a seguir:


79 // Computação Cognitiva

O aumento no número de registros e o ingresso de países nesta dança (quem era a China 20 anos atrás no gráfico?) expõe claramente como está mais fácil e mais rápido criar; e isso impacta diretamente na multidão de pessoas encorajadas a dedicar suas vidas a isso. Afinal, “90% de todos os cientistas que já viveram na Terra, ainda estão vivos hoje”. Nunca se pesquisou tanto, nunca se criou tanto e nunca as ideias foram tão possíveis e concretas. Devemos isso à ciência e à tecnologia. Nossa capacidade de recriação e reinvenção já quebrou uma série de barreiras - inclusive físicas. Houve uma época em que já estava praticamente determinado que a Lei de Moore seria quebrada, pois se atingiria um nível de miniaturização dos transistores tão grande, que os próprios átomos dos transistores gerariam interferências em seus vizinhos e a capacidade computacional não poderia mais evoluir.

Mas não há limites para a criação. Na IBM já estão sendo feitas pesquisas avançadas para transistores de silício de 7 nanômetros desde 2014, e em 2015 já foram anunciadas pesquisas para transistores de nanotubos de carbono com inimagináveis 1,8 nanômetros, garantindo a continuidade da Lei de Moore. Certamente, o processamento como é feito hoje através de transistores e a evolução a cada 16 meses pode ser insuficiente para o objetivo da singularidade ou pode ser uma barreira para ela. Mas aí surge a computa-

ção quântica, que foge das limitações clássicas da física de materiais tradicionais e se faz proveito das leis da mecânica quântica, transformando transistores tradicionais e seus bits em qubits, aonde não estamos mais falando de estados fixos de 0s e 1s, agora um bit pode ao mesmo tempo ser 0 e 1. Parece meio raso esse papo de 0s e 1s simultâneos, mas os efeitos práticos disto são cálculos computacionais sendo feitos simultaneamente, enquanto seu computador processa individualmente cada cálculo. Desta forma, um processador com 30 qubits consegue processar cerca de 10 Teraflops (seu notebook e celular trabalham em Gigaflops) - inclusive já existem computadores sendo comercializados pela D-Wave com até 128 qubits de computação. O poder desses processadores quânticos é tão grande que está preocupando os cientistas de segurança da informação, pois são capazes de quebrar qualquer criptografia praticamente de forma instantânea e isso se tornou um desafio para o futuro da segurança de dados no futuro. A afirmação que diz que “nunca um computador será igual ao cérebro humano”, tem sido quebrada. O aclamado cientista Kurzweil já prevê a engenharia reversa do cérebro humano em 2020 (e nós, devs comuns, achando o máximo fazer a engenharia reversa daquela DLL já compilada) e já é um consenso entre a maior parte da comunidade científica que a singularidade será atingida entre 2025 e 2070. “Quem vai programar os algoritmos prevendo todo e qualquer tipo de situação do mundo? Isso é impossível!”. Era exatamente nesse ponto que eu queria chegar: “não precisamos”. A inteligência artificial, as redes neurais, o machine learning e o deep learning já fazem parte da nossa realidade. São tecnologias já comprovadas e que já trabalham


80 // Computação Cognitiva

em conjunto no que estamos chamando de computação cognitiva, que é basicamente dar o poder de cognição ao computador. Como isso é possível? Simples: ensinando-o. Estamos em uma era em que armazenamento de dados e Big Data já não são um desafio, com espaço cada vez mais barato e em espaço físico menor, se torna cada vez mais simples manter todos os dados digitais disponíveis instantaneamente. Você sabia que toda a história da internet (505 bilhões de páginas) está armazenada em https://archive.org/? Toda essa massa de dados de Big Data pode ser utilizada para alimentar sistemas de machine learning e deep learning, que consomem esses dados e aprendem com eles, passando a analisar e prever soluções para qualquer problema que lhes for questionado em relação àquela base de conhecimento, fazendo uso de padrões detectados e aprendidos, ou criando novos padrões com base nos anteriores. Já existem sistemas cognitivos que foram alimentados com bases gigantescas de prontuários médicos, capazes de diagnosticar câncer, alimentados com dados do mercado financeiro capazes de prever tendências econômicas e também existem soluções mais comerciais, que substituem URAs, aqueles atendimentos automáticos no telefone ou chat que conversam com você para resolver o seu problema ou te dar

uma orientação com base na sua necessidade, considerando inclusive o seu tom de voz e humor como bases. Existem até algumas brincadeiras, como você dar os ingredientes que tem disponível na geladeira e o computador te responder com uma receita que utilize esses ingredientes e ainda vá ter um paladar agradável (ele não busca em uma base de receitas prontas, ele cria ela na hora mesmo!). Voltando à singularidade do começo do texto, imagine alimentar um sistema cognitivo com todos os dados de todas as patentes do mundo, de todas as pesquisas do mundo, laboratórios, livros, bancos de dados de todas as empresas. Quais as possibilidades? Dados para isso já temos (Big Data), computação para isso já temos (computação quântica). Negociar a liberação de tantos dados levaria mais tempo que a própria alimentação do sistema em si. Mas e se ensinarmos a própria computação cognitiva a negociar isso? Temos dados de milhões de contratos comerciais disponíveis, bilhões de trades em bolsas de valores, milhares de livros sobre técnicas de venda e negociação, incontáveis horas de vídeos de YouTube com as mais variadas técnicas (falando em vídeos, recentemente foi feito um trailler de filme inteiramente com cenas selecionadas por computação cognitiva, de uma forma que deixaria o trailler mais atrativo aos humanos, poupando meses de trabalho da equipe de produção; você sabia?).


81 // Computação Cognitiva

Sendo até um pouco mais subversivo e futurista, imaginem quando inserirem na computação cognitiva todo o conhecimento sobre protocolos de internet, de redes, de segurança e criptografias e utilizarem isso para juntar a maior base de dados e aprendizado possível com toda e qualquer informação que esse sistema conseguir capturar, atingindo um nível de conhecimento nunca antes imaginado de ser centralizado em um único lugar. E uma situação perfeitamente plausível, não?! “Se um computador tiver a capacidade de se auto-otimizar e se auto-evoluir, ele não teria mais motivo para se manter sob o domínio do ser humano”. Assustador, não? Essa possibilidade assombra a humanidade há muitos anos, expressa em diversos filmes como Exterminador do Futuro, Matrix, Eu, Robô, Transformers e muitos outros. Um dia, eles foram encarados como sensacionalistas, mas existem cientistas que defendem fortemente que essa evolução pode acabar culminando no fim da humanidade, através de catástrofes financeiras com a falência do sistema capitalista (computadores saberão fazer absolutamente tudo e mais rápido, livre de erros, inviabilizando a contratação de humanos, lentos, desanimados, procrastinadores, suscetíveis a erros) que resultará em guerras (falam de 3ª Guerra Mundial) - algumas entre os próprios humanos, encurralados em suas necessidades básicas da pirâmide de Maslow, e outras entre humanos e máquinas, que lutarão pela supremacia do planeta. “E se direcionarmos isso para o bem?”. Exato, meu caro. Imagine todo esse poder computacional do cognitive, direcionado à medicina. Todos os dados de todas as pesquisas, quadros de pacientes, medicamentos, comportamentos das doenças e vírus, evoluções e involuções de tumores, medicinas alternativas e fitoterápicos. Quais são

as possibilidades? Em quanto tempo uma doença sua seria curada? Em quanto tempo um computador quântico com deep learning encontraria a cura da AIDS? Do Ebola? Imagine você ficar gripado de uma mutação nova da gripe, dar uma picada no dedo para coletar uma amostra para um computador quântico analisar e sintetizar um remédio exclusivo para o seu organismo e para a mutação de vírus que você foi infectado. Imaginemos mais longe ainda: você manda a amostra para um computador cognitivo analisar e, depois de uma hora, passa na farmácia para pegar sua cápsula de nano-robôs programados para combater diretamente os vírus daquela gripe no seu organismo e se auto-eliminarão na urina, sem efeitos colaterais que todas as drogas trazem junto com o tratamento. Precisa de um órgão novo? Ok, computação cognitiva pode te ajudar com isso também. “Fazemos seu órgão novo em 30 minutos” através de impressoras 3D de biomateriais (já existem, inclusive), livres de rejeição do seu organismo, pois serão feitas exclusivamente para você, com seu DNA e sua anatomia. “Refugiados precisam de moradia, em uma área que contenham apenas um material que não é adequado a construção civil”. Já vai virar cliché, mas cognitive te ajuda nisso também, meu caro. Alimente-o com toda a base de conhecimento de engenharia, de física, de química, de mecânica de materiais e ele acha um jeito de construir naquela área. Alimente-o com toda a base de conhecimento de robótica, eletrônica e mecatrônica, e ele ainda te faz um robô para isso. Futurista demais? Não, isso é singularidade; e já está batendo aí na porta! Quer ver? • O Bradesco já usa atendimento com com-


82 // Computação Cognitiva

putação cognitiva, capaz de reconhecer o seu problema e o melhor especialista para te ajudar no seu problema. Ele consegue, inclusive, perceber pelo seu tom de voz o seu nível de irritabilidade; • O IBM Watson colabora com mais de uma dúzia de institutos do câncer, utilizando genoma para tratamentos individualizados às necessidades de cada paciente; • Estão sendo pesquisadas soluções de combate a catástrofes, utilizando Internet das Coisas, sensores acústicos espalhados em regiões suscetíveis a enchentes ficam escutando o solo e alertam sobre enchentes iminentes; • Grandes bancos já utilizam cognitive para analisar transações financeiras e prever riscos e fraudes. As empresas já levam tão a sério a computação cognitiva que foi criado em conjunto do TED e da IBM, o AI X Prize ( http://ai.xprize.org/), uma competição que premiará um total de US$ 5 milhões as melhores ideias de interação colaborativa entre humanos e inteligência artificial. A Reuters também está formando um núcleo de pesquisa focado em cognitive. A forma como sistemas cognitivos são programados, obviamente, é diferente das linguagens de programação comuns, como a KEEL Dynamic Graphical Language, por exemplo, na qual as estruturas de decisão influenciam as subsequentes decisões. Dessa forma, é possível “ver” o que o computador “pensou” para chegar a uma decisão e influenciar diretamente nas próximas decisões. Reparou? “Influenciar” nas decisões e não decidir por ele. Estamos descendo gradualmente do palco e dando lugar à compu-

tação. A DARPA já está desenvolvendo um sistema chamado SyNAPSE, em parceria com a IBM, que desenvolveu a arquitetura TrueNorth, focada em simular a construção do cérebro humano, inclusive ele tem 256 “neurônios” (processadores), 256 “axônios” (memória) e 64.000 “sinapses” (comunicação entre os neurônios e axônios). A IBM já tem planos em elevar essa equação para até 100 trilhões de sinapses. Seguindo uma outra forma de raciocínio na programação (que basicamente é a mesma desde o FORTRAN, em 1950, para o ENIAC), existe uma nova linguagem de programação baseada em “corelets”, que se baseia em abstrair cada um desses neurônios do TrueNorth. Cada “corelet” tem 256 entradas e 256 saídas simultâneas, que se conectam aos outros neurônios com seus próprios “corelets”. É, vamos ter que nos reinventar para não ficarmos pra trás...

FERNANDO RYCHLEWSKI Mais de 16 anos de desenvolvedor curioso (Nerd) e mais de 8 anos de experiência em Análise e Gerência de Projetos de Sistemas em arquiteturas Web/Cloud, atua na elaboração de evoluções tecnológicas e arquiteturas em sistemas de grandes corporações no mercado. Também Organizador e Palestrante de eventos para a comunidade de Desenvolvedores brasileiros (Google Developers São Paulo, NetCoders, iMasters, etc), além de 12 anos de experiência com design gráfico (CEO de uma gráfica, seu Hobbie).


83 // APIs

Diferencie a sua aplicação com APIs que gerenciam linhas telefônicas Por Djalmo Aquino, Diretor técnico da DirectCall Os setores de telefonia e o de software nunca caminharam juntos a passos largos no Brasil. O mais próximo que uma aplicação corporativa chega da telefonia hoje ajuda apenas o usuário a guardar números de telefone. Felizmente, esse cenário vai mudar rapidamente. As APIs de telefonia liberam a infraestrutura da operadora para o desenvolvedor habilitar recursos avançados e o histórico de telefonia na sua aplicação em minutos. Isso sem exigir conhecimentos de telefonia, sem gastos com CTI (Computer Telephony Integration) ou com adaptadores VoIP. Este artigo tem por objetivo esclarecer como eles funcionam, onde encontrar documentação técnica e exemplos de código e quando utilizar Helpers ou Gadgets (miniaplicativos que podem acelerar a implantação). Como funcionam? Linhas telefônicas fornecidas com APIs podem ser controladas pela Internet com extrema simplicidade, basta uma requisição HTTP para iniciar uma ligação e receber um status em Json ou XML, por exemplo. Funcionam com sistemas desktop, web ou mobile através de conexão SSL, que mantém todos os dados criptografados. No que isso pode me ajudar? • Permitem ligar com opção de gravação na operadora.

• Controlar online o destino de ligações recebidas, se devem ser gravadas. • Enviar SMS, mensagem de voz, receber SMS. • Consultar o histórico de ligações e de mensagens por contato ou usuário da sua aplicação. • Habilitar URA (Unidade de Resposta Audível) na operadora etc. Veja como é simples iniciar uma ligação via HTTP: Sem ser um especialista em telefonia, sem adaptadores e banda larga ideal para voz: Veja a documentação técnica sobre APIs de telefonia em doc.directcallsoft.com, em português. Veja exemplos de código em CURL, PHP, Java, Python, .NET, Dephi etc. em: www.directcall.com.br/playground

// Exemplo usando o CURL para as requisições HTTP // Um usuário e senha de teste pode ser obtido em: https://www.directcallsoft.com/api/testar // Gerar um ACCESS TOKEN curl -X POST https://api.directcallsoft.com/request_ token \ --data-urlencode “cliente_id={usuário fornecido pela Directcall}” \ --data-urlencode “cliente_secret={Senha fornecida}” \


84 // APIs // Requisitar uma chamada com o ACCESS TOKEN gerado, com opção de gravação // Origem e destino aceita nº de telefone com cód. de país e de área, ex. 554130160300 curl -X POST https://api.directcallsoft.com/voz/call \ --data-urlencode “access_token={access_token}” \ --data-urlencode “origem={numero de origem}” \ --data-urlencode “destino={numero de destino}” \ --data-urlencode “gravar=s” \ --data-urlencode “format=json “ // A ligação requisitada é entregue para a origem, chamando no destino. Ambos podem atender em qualquer telefone fixo, móvel ou IP que receba ligação direta.

Veja a documentação técnica sobre Helpers ou Gadgets que complementam o uso das APIs de telefonia em doc.directcallsoft.com, em português. Veja um conjunto deles rodando neste link de produção: painel.directcallsoft.com. Cada janela desse link consome um Helper ou Gadget independente, por meio dos quais você pode receber a cor e o nome da sua aplicação, a partir da janela Config. Casos de sucesso: O Salesforce disponibiliza para usuários do Brasil ligações a partir dessas APIs, mensagens e histórico de comunicação nos cadastros e relatórios online do seu CRM. Procure Directcall na APPExchange. A Telelistas está investindo em calltracking, em anúncios que cobram por lead, a partir de números de telefone exclusivos que entregam para os seus clientes o histórico de ligações e áudios gerados por meio dessas APIs.

No meu endereço ou na operadora? Outra característica interessante da linha gerenciada por APIs é que ela pode ser instalada no endereço do cliente ou no da operadora. Isso permite gerenciar ligações recebidas, realizadas etc. em cidades ou países onde o desenvolvedor ou o seu cliente nem possui estrutura física. Use Helpers ou Gadgets quando a tarefa exige interface amigável para o usuário, nos recursos que serão consumidos a partir de botões ou de telefones que receberão cliques em cadastros ou relatórios. O uso direto das APIs de telefonia é indicado para os recursos que serão consumidos por regras ou por atividades automatizadas na sua aplicação.

A operadora OI utiliza a solução “A gente te liga” (click to call) disponível no seu web site, que distribui e grava cerca de 200.000 pedidos de atendimento por mês, com investimento zero em equipamentos. A Directcall valida o telefone de cadastros, enviando senhas de teste ou de clientes por SMS ou por mensagem de voz, quando o telefone é fixo.

DJALMO AQUINO é diretor técnico da DirectCall. Coordena há mais de 20 anos projetos que buscam a integração de softwares corporativos com telefonia fixa, móvel e IP. Participa do desenvolvimento de APIs destinadas a ERPs, Helpdesks, CRMs e e-commerces líderes de mercado (ex.: Salesforce CRM) – Premiadas no ESPAÇO INOVAÇÃO da FUTURECOM e da Ciab FEBRABAN. djalmo@creapr.org.br


85 // Por aí

Fazendo a internet do Brasil pelo mundo Que os brasileiros têm feito muita coisa, a gente sabe. Mas quem está fazendo o quê e onde, nem sempre fica bem claro. A ideia aqui é que você apareça, com a sua equipe, sua turma, seus amigos, mostrando um trabalho, a participação num hackaton, palestra etc. Quer participar? Envie uma foto e descrição para redacao@imasters.com.br

GS1 desafia desenvolvedores e premia os vencedores com viagem para o maior Hackaton da Europa, em Zurich A Associação Brasileira de Automação-GS1 Brasil reuniu mais de 40 jovens em uma disputa para a criação de aplicativos que auxiliem no dia a dia de empresas e cidadãos brasileiros. O objetivo era criar um app com os padrões da GS1. O prêmio era participar do maior Hackaton da Europa, que aconteceu nos dias 16 a 18 de setembro, em Zurich, na Suíça. A grande vencedora foi a equipe formada por Mike Lima, Gabriel Euclides, Felipe Bernardes e Celso Wo Kar Ng. Eles desenvolveram um aplicativo que facilita o dia a dia do consumidor na compra de remédios. Basta escanear o código de barras da caixa do medicamento que coletará informações da base de dados da GS1 Brasil sobre o item específico, e assim ter acesso a uma lista de compras disponibilizada pelas farmácias mais próximas. Desta forma, as redes farmacêuticas ofertam o medicamento e o usuário efetua a compra pelo próprio app e retira o produto na loja física com um código gerado após a compra. Eles serão os primeiros a representar a América Latina no evento.

Semana de Computação da USP traz realidade virtual como tema A Semana de Computação (Semcomp), que aconteceu no Instituto de Ciências Matemáticas e de Computação (ICMC) da USP, no mês de agosto, trouxe como tema a importância da experiência do usuário na realidade virtual. Marcio Funes, mestrando do ICMC, colocou no palco uma voluntária para a sua primeira experiência com óculos de realidade virtual. Ela assistia, no palco, a um filme de terror. O mestrando queria que a plateia, composta por cerca de 200 estudantes de cursos da área de computação, compreendesse a importância da magia dessa ciência sob o olhar de quem usa a tecnologia. Afinal de contas, são eles que, no futuro, terão a capacidade de criar essas soluções. “Seus usuários são sua maior fonte de informação. Eles querem ser enfeitiçados. Cabe a nós criarmos essa magia”, afirmou Marcio.


86 // Por aí

Durante a Semcomp, mais de 900 alunos puderam mergulhar nas diferentes facetas da computação, além de compreender melhor as inúmeras oportunidades existentes nesse mercado de trabalho e também no campo da pesquisa acadêmica. Dentre as atividades, foram 23 minicursos, 9 palestras, uma mesa redonda, uma jornada de 48 hora ininterruptas de desenvolvimento de games (Game Jam), uma noite de jogos (Gamenight).

Pesquisa do ICMC conquista primeiro lugar no Prêmio Tese Destaque USP O doutorando Wallace Casaca levou o 1º lugar no Prêmio Tese Destaque USP de 2016, na categoria Ciências Exatas e da Terra. Sua tese, chamada de Graph Laplacian for Spectral Clustering and Seeded Image Segmentation, propõe uma ferramenta inovadora para facilitar a vida de quem precisa segmentar uma imagem. O estudo vai contribuir para aprimorar a personalização artística de fotografias, a identificação de indivíduos e a análise de imagens médicas. Wallace teve sua tese reconhecida em outras quatro ocasiões: venceu o prêmio da Sociedade Brasileira de Matemática Aplicada e Computacional (SBMAC) “Odelar Leite Linhares”; obteve o primeiro lugar no Concurso Latino-americano de Teses de Doutorado da 41ª edição da Conferência Latino-americana em Informática (CLEI 2015); recebeu menção honrosa no Prêmio CAPES de Teses e foi reconhecida pela Sociedade Brasileira de Computação (SBC) no 28º Concurso de Teses e Dissertações do 35º Congresso da Sociedade Brasileira de Computação, em 2015.


Revista iMasters #20  

A ferocidade da engenharia aplicada ao mercado de software.

Read more
Read more
Similar to
Popular now
Just for you