Revista iMasters #19 - Agosto

Page 1

Agosto 2016 / Ano 05 / Edição 19 We are developers

#pag25

DESENVOLVIMENTO DA SEGURANÇA DA INFORMAÇÃO: PASSADO, PRESENTE E FUTURO A GENTE QUESTIONA:

UMA PAUSA, JOVEM,

EXPERIÊNCIA DE USUÁRIO E SEGURANÇA?

QUÃO FÁCIL É ROUBAR DADOS MOBILE?

PARA SABERMOS UM POUCO MAIS SOBRE OAUTH

#pag18

#pag25

#pag51

R$24,00

VOCÊ SABE A IMPORTÂNCIA DA RELAÇÃO ENTRE



// 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 Alexandre Brandão Lustosa, André Cosntantino, Bruno Fidelis, Bruno Rodrigues, Danniel H. Ribeiro, Erick Tedeschi, João Paulo Oliveira, Kemel Zaidan, Léo Hackin, Maurício Soares, Nicolás Coniglio, Reinaldo Ferraz, Ricardo Ogliari, Sérgio Gama, Thiago Vian e Vinícius Pessin. 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

Fazer a curadoria de um produto como a revista iMasters é algo desafiador e, ao mesmo tempo, muito gratificante. Dentre tantas tecnologias que existem no nosso mercado, que permeiam nossas vidas, que guiam nossas carreiras e que transformam nossos relacionamentos, é realmente instigante fazer parte deste projeto. Nesta edição trazemos algo que normalmente costumamos deixar de lado; um assunto que costuma gerar um certo atrito dentro das organizações e, ao mesmo tempo, é um assunto que todos nós temos a certeza da sua necessidade. Temos o prazer de abordar nesta edição a questão da segurança da informação, seus vieses, sua necessidade e sua remodelagem. Atualmente, precisamos nos preocupar com a segurança das nossas aplicações como nunca havíamos tido a necessidade de nos preocuparmos antes. Porém, vamos abordar este tema como algo prazeroso e instigante. Dentro deste conteúdo vocês encontrarão o passado, o presente e o futuro da segurança. Vamos abordar a UX de maneira segura e o blockchain como novo paradigma de banco de dados, vamos aprender um pouco mais sobre o OAuth e temos uma entrevista com o Felipe Paranda, do Latin America Secutiry Tiger Team. Além disso, vamos falar sobre cultura organizacional, Docker, Node, design, paas, escalabilidade, react, dentre outras tecnologias que tanto nos divertem. É muito conteúdo! E ele foi preparado com carinho, especialmente para você! Aproveite!

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



Sumário // 7

Experiência do usuário Você sabe a importância da relação entre experiência de usuário e segurança?

18

CAPA Desenvolvimento da Segurança da Informação: passado, presente e futuro

55

51

Mobilidade é tudo 25

A gente questiona: quão fácil é roubar dados mobile?

OAuth

Uma pausa, jovem, para sabermos um pouco mais sobre OAuth


Sumário // 8

11.

18.

Alexandre Brandão Lustosa Microsserviços // API Rest com Workflow ASync e MassTransit

André Constantino Experiência do Usuário // A relação entre experiência de usuário e segurança

21. Sérgio Gama

25.

PaaS // Democratizando inovação e tecnologia Ricardo Ogliari Mobilidade é tudo // Dados no mobile – mais fácil que roubar doce de criança

29. Nicolás Coniglio Open Plataform // Conheça as vantagens de se abrir a essa ideia

35. Entrevista // Felipe Penaranda Silva Latin America Security Tiger Team

47. Bruno Rodrigues Sr. Conteúdo // Palavra certa, indexação correta

32.

Bruno Fidelis Docker // Utilizando Docker para escalonar aplicações Node.Js

42. Maurício Soares Desenvolvimento // Estruturando um aplicativo em React.JS

51. Erick Tedeschi OAuth // Uma pausa, jovem, para sabermos um pouco mais sobre OAuth


Sumário // 9

55. Alex Lattaro Capa // Uma breve viagem ao desenvolvimento da Segurança da Informação: passado, presente e futuro

67. João Paulo Oliveira Blockchains // Considerações sobre segurança em ambientes descentralizados

63. Danniel H. Ribeiro Escabilidade // Escalabilidade de aplicações web

73. Reinaldo Ferraz Por dentro do W3C // Legendas na Web – além das fontes brancas

75. Tiago Vlan Design // Como criar melhores produtos por meio do design centrado no usuário

78.

Kemel Zaldan Código Livre // Electron

80. Vinícius Pessin Marketplace // E-commerce e marketplace:o passo a passo da integração

84. Redação iMasters Por aí // Fazendo a internet do Brasil pelo mundo

Léo Hackin Cultura Organizacional // Cultura > Times > Pessoas > Processos

88.


Bem-vindo à Era da Economia Cognitiva.

Fusões e aquisições empresariais são arriscadas. Nove em cada dez não evoluem. Com o IBM Watson™ Tradeoff Analytics é possível analisar dados mais ricos e diversos, selecionados para fornecer informações relevantes dentro do contexto e dos interesses em questão. Dessa forma, os especialistas podem prever riscos e oportunidades de forma mais clara, ganhando confiança para tomar as melhores decisões. Quando o Watson pensa com empresários, as empresas podem repensar os limites do sucesso.

outthink IBM, o logo IBM, ibm.com e Watson são marcas registradas e de titularidade da International Business Machines Corporation em diversos países em todo o mundo. Uma lista atualizada das marcas registradas e de titularidade da IBM está disponível na Internet, em www.ibm.com/legal/copytrade.shtml. ©International Business Machines Corporation 2016.

repense seus negócios

ibm.com/outthink/br


11 // Microsserviços

API Rest com Workflow ASync e MassTransit Por Alexandre Brandão Lustosa, Gerente de TI na Stone Pagamentos

Quando se fala em arquitetura de microsserviços, logo a divisão de responsabilidade e domínio de cada processo/aplicação se torna extremante relevante e importante. Sendo assim, serviços baseados em eventos e/ou transporte via barramento de dados tornam-se viáveis, e são também grandes aliados dessa arquitetura, garantindo o desacoplamento necessário e a interoperabilidade entre sistemas.

RabbitMQ Message Broker Por muitas vezes, o feedback de equipes de desenvolvimento que trabalham com RabbitMQ denota uma grande dificuldade e complexidade na operação de integração com a ferramenta quando utilizada a SDK C# .Net padrão, RabbitMQ Client, fornecida pelo time de desenvolvimento da própria RabbitMQ. Isso ocorre por ser necessário trabalhar diretamente com serialização de objetos em buffer de bytes, controle de fluxo de dados mais detalhados e uma quantidade grande de itens de configuração que podem impactar na produtividade e na qualidade do sistema desenvolvido.

MassTransit .Net Service Bus Framework É interessante, principalmente quando se

projeta uma arquitetura utilizando serviços de barramento, ter controle total do fluxo de dados. No entanto, isso não pode se tornar uma tarefa complexa e dispendiosa que gere impacto nas entregas. O MassTransit é uma ótima opção para minimizar esse impacto e, ao mesmo tempo, ter controle total do fluxo de dados, acesso às configurações avançadas na implementação de componentes e camadas de integração com RabbitMQ Message Boker. O MassTransit é um framework open source para aplicações distribuídas que torna simples, rápida e escalável essa tarefa de integração. Dados e informações adicionais do framework podem ser encontrados em: • Site oficial: http://masstransit-project.com/ • GitHub: https://github.com/MassTransit/ MassTransit • NuGet Package: https://www.nuget.org/ packages?q=masstransit

Integrações com MassTransit O MassTransi framework oferece uma lista considerável de integrações e componentes, que minimiza ainda mais a carga de traba-


12 // Microsserviços

lho e a complexidade no desenvolvimento. Além do RabbitMQ, é possível conectar com o AzureServicebus. Sua vasta biblioteca possui compoNentes para Log4Net/NLog, MongoDB, Autofac, CastleWindsor, Microsoft Unity, Ninject, NHibernate, StructMap, Quartz, Entiti Framework, entre outros. Veja a lista completa em: https://www.nuget.org/ packages?q=masstransit

Client

Para exemplificar o uso do MassTransit com RabbitMQ Message Broker, será abordada uma Web API REST com fluxo assíncrono, ou seja, a API, ao receber a requisição, irá disponibilizar os dados na fila para processamento e irá retornar para o cliente a seguinte informação: “Solicitação recebida com sucesso, dados em processamento”.

Message Broker

API Rest

Requisição JSON

Web API ASync

Consumer

Repository

Recepciona os dados

Informa que está em processamento

Publica na fila Recepciona os dados na fila

Gere evento de recepção para o consumidor Envia para o repositório Persiste os dados

Figura 1 – Fluxo de mensagens da API Rest com workflow assíncrono O consumidor irá obter a informação da fila e efetuará o processamento em segundo plano, sem que seja necessário travar o cliente que efetuou a requisição na API.

Crie um novo projeto We.API 2.0 e instale o framework do MassTransit. Em seguida, execute o seguinte comando no console do NuGet Package Console:

Laboratório – API Rest

• Install-Package MassTransit.RabbitMQ

Neste exemplo, iremos utilizar as seguintes tecnologias: • C# .Net Web.API 2.0 • RabbitMQ 3.6.0 • MasTransit Framework 3.0

Crie uma nova Controller chamada Sale para simular um processo de solicitação de autorização de compra com cartão de crédito. E duas entidades - para recepção (CreateTransactionRequest) e resposta (CreateTransactionResponse) do processamento.


13 // Microsserviços

Listagem 1 – CreateTransactionRequest // Requisição de criação de transação de cartão de crédito public class CreateTransactionRequest { [Required] public string CreditCardNumber { get; set; } // Número do cartão [Required] public string SecurityCode { get; set; } // Código de segurança [Required] public string ExpMonth { get; set; } // Mês de expiração [Required] public string ExpYear { get; set; } // Ano de expiração [Required] public string HolderName { get; set; } // Nome do comprador [Required] public long AmountInCents { get; set; } // Valor em centavos public Guid TransactionKey { get; set; } // Chave da transação public Guid RequestKey { get; set; } // Chave da requisição public CreateTransactionRequest()

{

this.TransactionKey = Guid.NewGuid(); // Cria a chave da transação this.RequestKey = Guid.NewGuid(); // Cria a chave de requisição

}

}

Listagem 2 - CreateTransactionResponse // Resposta da criação de transação public class CreateTransactionResponse { public Guid TransactionKey { get; set; } public dynamic Errors { get; set; }

}


14 // Microsserviços

Listagem 3 – Web.API Controller /// <summary> /// Controlador dos recursos de venda /// </summary> [RoutePrefix(“api”)] [public class SaleController : ApiController { /// <summary> /// Cria uma venda /// </summary> /// <param name=”createTransactionRequest”>Dados da requisição</param> /// <returns>Retorna uma venda</returns> [HttpPost] [Route(“sale/”)] public IHttpActionResult CreateSale(CreateTransactionRequest createTransactionRe quest) { try { // Verifica se há erros if (!ModelState.IsValid) { var message = string.Join(“ | “, ModelState.Values .SelectMany(v => v.Errors) .Select(e => e.ErrorMessage));

}

//Retorna a lista de erros return BadRequest(message);

// Conecta no barramento de servios var bus = Bus.Factory.CreateUsingRabbitMq(sbc =>

{

var host = sbc.Host(new Uri(“rabbitmq://localhost/”), h =>

{

h.Username(“guest”); h.Password(“guest”);

}); });

//Inicia o barramento using (bus.Start()) { var task = bus.Publish<CreateTransactionRequest>(createTransactionRequest); task.Wait(); } //Cria a resposta var createSaleResponse = new CreateTransactionResponse() { TransactionKey = createTransactionRequest.TransactionKey


15 // Microsserviços

}

}; return Ok(createSaleResponse); } catch (Exception ex) { return InternalServerError(ex); }

}

Laboratório – Consumindo dados do barramento Neste exemplo, iremos utilizar as seguintes tecnologias: • Application console, que também poderá ser convertida em Windows Service ou WebJob posteriormente • RabbitMQ 3.6.0

Crie um novo projeto Console Application e instale o framework do MassTransit. Execute o seguinte comando no console do NuGet Package Console: • Install-Package MassTransit.RabbitMQ Na classe principal, defina a seguinte listagem de código:

• MasTransit Framework 3.0 Listagem 4 – Aplicação de recepção de dados do barramento static void Main(string[] args) { // Acessa o barramento e efetua a conexão var bus = Bus.Factory.CreateUsingRabbitMq(sbc => { var host = sbc.Host(new Uri(“rabbitmq://localhost/”), h => { h.Username(“guest”); h.Password(“guest”); }); // Conecta no barramento e aguarda o evento de recpção sbc.ReceiveEndpoint(host, “InputCreateTransactionRequestQueue”, endpoint => {

endpoint.Handler<CreateTransactionRequest>(async context => { var data = JsonConvert.SerializeObject(context.Message); await Console.Out.WriteLineAsync($”Received: {data}”); }); }); });

bus.Start(); // Incia o barramento Console.ReadKey(); // Aguarda uma tecla ser pressionada bus.Stop(); // Para o barramento }


16 // Microsserviços

Laboratório – Dados para testes Para os testes de integração, utilizei o PostMan para enviar a requisição POST com os seguintes parâmetros: • url: http://127.0.0.1:37311/api/sale (porta do IIS Express 37311)

ALEXANDRE BRANDÃO LUSTOSA

• Request Type: POST • Body: { “CreditCardNumber”: “11212”, “SecurityCode” : “3434”, “ExpMonth” : “12”, “ExpYear”: “2016”, “HolderName” : “Alexandre”, “AmountInCents”: 113 }

é desenvolvedor com 18 anos de experiência, com

certificações

Microsoft

.Net

MCSD

Web

Developer, MCSA Microsoft SQL Server 2012/2014 e Microsoft IT Specialisty. Possui vasta experiência

Link para download do Postman: www.getpostman.com/

em desenvolvimento em C/C++ for Linux Embeded e Microchip Microcontrollers, Assembler. Participou de projetos na área financeira para o Banco Itaú, entre

Conclusão

outras instituições, e do desenvolvimento de armas militares para o Exército Brasileiro, Arábia Saudita e Malásia. Atualmente é Gerente de TI na Stone

Com o uso do MassTransit, a tarefa de integração com Message Brokers, como RabbitMq e Azure ServiceBus, torna-se simples e, ainda assim, todo o poder e o controle ainda estão em suas mãos. Desacople seu Workflow com MassTransit, e ganhe performance e produtividade.

Pagamentos. Twitter: @abrandaolustosa LinkedIn: https://br.linkedin.com/in/abrandaol GitHub: https://github.com/alexandrebl Contato: abrandao@stone.com.br


SEU COMPUTADOR GUARDA MUITAS INFORMAÇÕES IMPORTANTES? Neste cenário, os profissionais de Segurança da Informação são cada vez mais procurados e valorizados. Torne-se especialista e prepare-se para o mercado de trabalho. Faça um curso de pós-graduação na Faculdade Impacta.

Inscreva-se já para o 2º semestre 2016!

Para mais informações, acesse:

www.impacta.edu.br


18 // Experiência do Usuário

A relação entre experiência de usuário e segurança Por André Constantino da Silva, Pesquisador-colaborador do NIED/UNICAMP

Para o desenvolvedor, compreender e atender aos requisitos funcionais e não funcionais de uma aplicação é fundamental para a satisfação de seu cliente. Considerando uma aplicação interativa, na qual há uma interação entre a aplicação e um ser humano, seja para computadores de mesa, Web ou para dispositivos móveis, a aplicação deve funcionar corretamente, executar as funcionalidades com uma baixa taxa de falhas e em tempo satisfatório, possuir uma usabilidade adequada, uma alta disponibilidade e um nível de segurança de modo que o usuário deposite confiança na aplicação. Todas essas características compõem uma aplicação Web e terão um impacto diferente na opinião dos usuários, pois esta é subjetiva e construída ao interagir com a aplicação. A usabilidade, um dos conceitos estudados pela área de Interação Humano-Computador, é definida pela norma ISO-9241-11 como a efetividade, eficiência e satisfação subjetiva do usuário ao usar a aplicação em um contexto de uso específico, ou seja, para realizar uma tarefa específica por um grupo de usuários definidos, o que muitas vezes não é de fácil delimitação para as aplicações Web. E um sistema com alta segurança, em relação a informação, impede acessos não autorizados ao sistema ou aos dados (do inglês security). Entretanto, deve-se considerar a segurança em outros níveis: o operacional (do inglês safety) e em relação à saúde e ao ambiente.

Embora estudadas como características distintas e sem relação, principalmente para a compreensão de conceitos tão complexos que cunham disciplinas específicas na Ciência da Computação, existe uma relação pertinente entre essas características. Resumidamente, o objetivo da Interação Humano-Computador, disciplina aceita em 1992 como pertencente à área da Ciência da Computação, é desenvolver ou melhorar a segurança, utilidade, efetividade e usabilidade de sistemas computacionais. Esse objetivo mostra uma relação entre a segurança e a Interação Humano-Computador - nesse caso, em relação à segurança dos seres humanos que utilizam diretamente ou são influenciados pelo uso da aplicação.


19 // Experiência do Usuário

“um sistema com alta segurança, em relação a informação, impede acessos não autorizados ao sistema ou aos dados (do inglês security)” Diversas estratégias para a segurança são empregadas nas aplicações, algumas delas são identificação do usuário, tipo e quantidade de autenticações, tempo de acesso e notificação de acessos, e algumas delas irão impactar na tarefa do usuário, pois precisarão da atenção dele. Por exemplo, após expirado o tempo de acesso, uma nova autenticação será necessária, retirando o foco do usuário de sua tarefa, o que para a usabilidade é prejudicial e favorece aspectos negativos na experiência de usuário, visto como “as percepções e reações de uma pessoa que resultam do uso ou utilização prevista de um produto, sistema ou serviço” (ISO-9241210). Mas o mais drástico é, em relação a uma experiência de usuário satisfatória, o sistema não retornar adequadamente após o término da ruptura das ações do usuário, ou seja, o sistema não retornar a tela anterior à interrupção e com os dados antes fornecidos. Um mecanismo de registro e autenticação que está se popularizando é o uso do sistema de autenticação das redes sociais. Por

serem amplamente difundidos entre usuários da Web, é possível obter os dados já registrados em outra aplicação - nesse caso, uma rede social, no momento da criação de uma conta mediante autorização do usuário. O usuário então pode apenas verificar os dados, alterar o que desejar e preencher os campos cujos dados não podem ser obtidos por meio dessa integração. Também é possível a autenticação utilizando o serviço de autenticação da rede social; nesse caso, o usuário não necessita relembrar a sua senha da aplicação, apenas a da rede social, caso ele ainda não esteja logado. Esse mecanismo pode favorecer uma experiência de usuário satisfatória, agradável e prestativa, a depender do escopo da aplicação. Outro método utilizado é o controle dos equipamentos que podem ser utilizados pelo usuário para acessar a aplicação, podendo exigir um cadastro prévio ou notificação de acesso ao usuário por um mecanismo de comunicação como e-mail ou SMS. Mas deve-se tomar cuidado no caso de uso dos dispositivos móveis para verificar a autenticidade do usuário, pois muitos usuários recebem as mensagens em seus aparelhos, que podem estar em posse de outra pessoa, oferecendo-lhe acesso indevido. Os dispositivos móveis permitem diversas formas de autenticação, como digitação de uma senha de números, de uma palavra-chave, desenho de padrões, leitura das digitais ou reconhecimento de padrão de voz. Por outro MARCELO lado, é necessário considerar que usuários

VARON

“o mais drástico é, em relação a uma experiênmais de 10 anos não de experiência no mundo cia de usuário satisfatória,possui o sistema retornar digital e atualmente é o Gerente Geral de Markeadequadamente após o término da ruptura das ting e vendas do UOL HOST, divisão do Grupo UOL o especializada em pequenas e médias empreações do usuário, ou seja, sistema não retorsas que queiram entrar e crescer no mundo online. nar a tela anterior à interrupção uolhost.com.br e com os dados antes fornecidos “


20 // Experiência do Usuário

desses dispositivos não necessariamente habilitam qualquer forma de autenticação e, portanto, uma aplicação para esses dispositivos deve considerar esse fato. A identificação e a autenticação podem ocorrer quando o usuário instala a aplicação, quando acessa a aplicação e esta é carregada na memória e, em caso de aplicações cujo acesso deve ser mais controlado, a expiração do acesso acontece quando o usuário muda de aplicação. Assim, a autenticação fica relacionada ao ciclo de vida da aplicação. Em caso de possibilidade de acesso não autorizado, também é possível utilizar recursos disponíveis nos dispositivos para capturar a localização do aparelho ou uma fotografia do usuário utilizando a câmera; esses dados poderão compor a notificação de acesso enviado à equipe de segurança. Há um fenômeno relacionado ao uso do equipamento, e podemos discutir o impacto disso na experiência de usuário: é importante o usuário estar ciente de que esses recursos poderão ser utilizados nesses casos e como eles serão tratados pela empresa. Assim, a segurança agrega valor a um produto, pois usuários desejam que as aplicações sejam seguras. Ao comprar em uma loja virtual ou obter um boleto para pagamento de um serviço, a segurança se torna fundamental. Nas aplicações de rede social, as pessoas não desejam que outros postem

conteúdo. Um sistema Web pouco confiável ou pouco seguro dificilmente será utilizado, mesmo que a sua interface tenha aspectos desejáveis que favoreçam uma experiência que ultrapasse as expectativas de seus usuários. A equipe multidisciplinar que desenvolve a aplicação deve encontrar o equilíbrio entre a segurança e a experiência de usuário, tarefa não trivial, e evoluir a aplicação em relação a funcionalidades, organização e estética da interface de usuário e segurança. Este é o difícil papel do designer da interação em conjunto com o especialista em segurança: desenvolver uma aplicação segura e usável.

ANDRÉ CONSTANTINO Dr. André Constantino da Silva é formado em Ciência da Computação pela UFG, mestre pelo DCC/UFSCar e doutor pelo IC/UNICAMP. Atualmente, é professor do Instituto Federal de São Paulo no câmpus Hortolândia, onde ministra disciplinas de Interação Humano-Computador, Engenharia de Software e Programação Web, coordenando o Grupo de Pesquisa Mobilidade e Novas Tecnologias de Interação. Também é pesquisador-colaborador do NIED/UNICAMP. andre.constantino@gmail.com


21 // PaaS

PaaS - democratizando inovação e tecnologia Por Sérgio Gama, Cloud Technology Lead IBM Um dos modelos de serviço na nuvem é o PaaS (Plataform as a Service), que surgiu com a proposta de oferecer todos os recursos tecnológicos necessários para execução, gestão e monitoramento de aplicações na nuvem - desde recursos computacionais, sistema operacional, já com o runtime instalado (Java, Node.js, Python, PHP etc.), e serviços como banco de dados, e-mail etc.. Isso já é sensacional, tanto para o pessoal do desenvolvimento, quanto para a galera do Ops, pois minimiza ou elimina todo o esforço, custo e risco inerentes ao processo de desenvolvimento de aplicações e operação das mesmas, já embarcando aspectos de elasticidade, alta disponibilidade, segurança e performance. Essa forma de comprar e consumir tecnologia diminui drasticamente os custos de aquisições de ativos (CAPEX), de pessoal, compra de licença de software, com seus contratos de manutenção e suporte muito onerosos, recursos humanos especializados em gerenciar e manter essas infraestruturas e a operação, mais os espaços refrigerados e o consumo de energia elétrica. Além disto tudo, nota-se que um dos fatores que tem atraído muito a atenção dos adeptos desse novo modo de comprar e consumir tecnologia é, sem dúvida nenhuma, a capacidade de inovação e acesso a diversas tecnologias, que até então eram privilégios de poucos, basicamente de grandes empresas. Um exemplo é o uso de tecnologias para processar grandes volumes de dados (Big Data) via mineração, utilizando

computação cognitiva, hadoop e extração de entidades, com softwares extremamente especialistas, que são capazes de entender linguagem natural em dados não estruturados e que normalmente necessitam de grande capacidade de processamento. E tudo isso pode ser feito por meio da chamada de uma API na nuvem, de um equipamento ou device com recursos limitados, que envia o dado (que é processado não sabemos onde, nem em qual equipamento, sistema operacional) e nos retorna o resultado. Se executarmos duas chamadas dessa API, pagaremos por duas chamadas, e se um grande banco executar essa mesma API um milhão de vezes por dia, pagará mais, e os dois casos têm garantidas a capacidade computacional, performance, segurança e disponibilidade. Os serviços, em sua maioria, estão disponíveis por meio de APIs, ou Aplication Program Interface - normalmente REST APIs; portanto, precisamos apenas entender as suas interfaces, ou recursos disponíveis. Por exemplo, caso queira extrair informações de um volume grande de dados não estruturados e em linguagem natural, que são facilmente encontrados nas redes sociais e documentos de todo tipo, basta consumir um serviço na nuvem - nesse caso, de computação cognitiva que entenda linguagem natural e que compreenda ontologia, ironia, dialetos, gírias etc., é importante ressaltar que esses serviços necessitam ser ensinados, pois são machine learning. Basicamente, é necessário enviar palavras ou textos e classificá-los.


22 // PaaS

Por exemplo, para ensinarmos nomes masculinos e femininos, basta enviar um arquivo csv com duas colunas, sendo a primeira com nomes, e a segunda com a classificação. Com isso, o serviço utilizará técnicas de taxonomia para entender os padrões e fazer as devidas classificações.

confiança, portanto podem ser utilizados na maioria das aplicações, independentemente da plataforma, que podem consumir APIs, como Android, iOS, Java, Node.js, PHP, Python etc.

Para ensinar:

Com isso, nós, desenvolvedores, precisamos somente de um computador, conexão à Internet, uma ideia e disposição para, por exemplo, tirar insights de dados não estruturados, fazer análise de sentimento baseado em posts nas redes sociais, analisar e entender dados em linguagem natural (com semântica e ironia), classificar e entender imagens e sons, capturar dados de milhares de sensores e devices, entender anomalias de comportamentos e fazer análises preditivas. Tudo em questão de horas, ou até de minuto, e na linguagem de programação com que mais temos familiaridade.

curl -u “usuário”:”senha” -F training_data=@ training_nomes.csv -F training_metadata= ”{\”language\”:\”pt\”,\”name\”:\”Nomes\”}” https://paas-provider.net/natural-language-classifier/api/v1/classifiers

Ou por que não aprender novas? Basta escolher e criar o seu ambiente na nuvem, abstraindo configuração de infra, instalação de sistema operacional e runtime! Portanto, vamos focar em código e inovar?

Em um segundo processo, podemos utilizar o serviço ensinado para classificar algo novo, portanto, estamos falando de dois recursos disponíveis em um mesmo end point - um para treiná-lo e outro para classificá-lo. Tecnicamente falando, executamos um serviço enviando os dados de “training”, e depois usamos o mesmo serviço informando que queremos que ele classifique algo. Abaixo, um exemplo de um dos serviços na nuvem:

E depois para classificar: curl -u “usuário”:”senha” -C classifier_ id=kjsdf24jsdfkj3 text=”Sergio” https://paas-provider.net/natural-language-classifier/api/ v1/classifiers Esses serviços retornam normalmente json ou xml, com classificações e percentuais de

SERGIO GAMA é engenheiro de automação com mais de 25 anos de experiência na área de TI, como programador, analista de sistemas, arquiteto de soluções e gerente de projetos. Trabalhou durante 15 anos em uma instituição financeira, onde foi especialista em sistemas distribuídos (desktops, client / server e mainframe) e aplicações de gestão de conteúdo (GED). Durante oito anos foi gerente de projetos e de desenvolvimento de soluções para seguradoras no Brasil, China e Índia. Está na IBM desde 2009, atuou como arquiteto de soluções de TI e hoje é evangelista da plataforma IBM Bluemix para América Latina.



24

Drops do mercado

Zendesk facilita comunicação entre empresas e usuários no Google Play Para ajudar seus clientes a gerarem engajamento e construírem uma relação mais forte com o consumidor, a Zendesk, empresa que produz software em nuvem para atendimento ao cliente e gerenciamento de chamados, integrou-se ao Google Play, a maior loja de aplicativos em funcionamento. Por meio do software de atendimento Zendesk, os desenvolvedores de aplicativos conseguem responder diretamente a um usuário que postou suas impressões sobre o produto. Funciona da seguinte forma: quando uma resenha sobre a experiência do app é recebida, gera-se um ticket de atendimento automático no software da Zendesk, e a resposta dos agentes vai para a página do Google Play. Por enquanto essa funcionalidade está limitada aos aplicativos e jogos.

Cloud sever Pro O Cloud Server Pro é uma solução de Infraestrutura na nuvem como serviço da Locaweb, ideal para publicação de sites, e-commerces e outras aplicações. A solução oferece acesso Root/Admin, escalabilidade, estrutura híbrida, soluções de recovery e Imagens pré-configuradas Lamp (Linux, Apache, MariaDB, MySQL e PHP) e Wordpress, além de APP mobile, Espaço gratuito para SO e o melhor: preço em Real. A novidade é que, a partir de julho, passa a oferecer 1 TB de transferência gratuita para todos os servidores, novos ou existentes. Isso significa que, além de colaborar diretamente na redução de custos variáveis, reforça o compromisso da empresa em continuar sendo uma opção nacional com ótimo custo-benefício. Em conjunto com esta novidade, o Cloud Server Pro continua oferecendo autonomia, escalabilidade e infraestrutura de servidores no Brasil, porém, com mais economia para os novos e atuais projetos. Para saber mais, acesse: http://lwgo.to/195

Saiba como ganhar dinheiro com o PrimeBuilder Store Você já parou para pensar na quantidade de aplicativos que podem ser desenvolvidos para solucionar um problema corporativo. Imagine um setor da economia, qualquer um, e lá está uma oportunidade de criar uma solução móvel, rápida, eficaz e lucrativa, e você ainda ganha de bônus a ótima sensação de ter feito algo que estará sendo utilizado para gerar riqueza e empregos, inclusive para você. Para o desenvolvedor, o lançamento da Store trouxe a facilidade de colocar suas soluções em uma vitrine para o mercado, propiciando um aumento de vendas significativo, mantendo a mesma simplicidade e poder da plataforma PrimeBuilder já existente desde 2006, contando com desenvolvimento rápido, drag and drop, codeless, com API para integração com sistemas externos. Inscreva-se em store. primebuilder.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”.


25 // Mobilidade é tudo

Dados no mobile - mais fácil que roubar doce de criança Por Ricardo Ogliari, Engenheiro Android na BTCjam

Na construção de aplicativos mobile, a necessidade de tratamento de dados, ou ainda o famoso CRUD (create, read, update e delete), é extremamente comum. Nas principais plataformas mobile, as possibilidades oferecidas se assemelham bastante. Basicamente temos estas opções: • Mídia interna: as plataformas oferecem um sistema de arquivo específico para o aplicativo. • Mídia externa: basicamente podemos resumir esta opção ao SDCard. Acesso à rede de dados: enviar os dados para um web service e este, por sua vez, persistir as informações também pode ser considerado uma alternativa para aplicativos mobile; • Banco de dados relacional: todas as principais plataformas fornecem uma implementação do SQLite nativa;

• Um par chave-valor: as principais plataformas permitem que um par de dados, composto por um valor associado a uma chave, seja persistido mesmo quando a aplicação seja fechada pelo usuário. Para os programadores Java, uma analogia pode ser feita com a classe HashMap. Imagine essa classe estática dentro do ambiente do sistema operacional. Uma das opções mais utilizadas é o banco de dados relacional com o SQLite. Nas duas principais plataformas, Android e iOS, esse trabalho não é muito amigável. Para os desenvolvedores iniciantes, chega a ser um ponto de cuidado no desenvolvimento de novas aplicações. Quem já precisou implementar uma classe que estende de SQLiteOpenHelpder e trabalhar com os métodos de CRUD da classe SQliteDatabase sabe do que estou falando. E para os desenvolvedores Apple, compartilho


26 // Mobilidade é tudo

com vocês o processo penoso, pelo menos para os viajantes inexperientes, de configurar o(s) arquivo(s) xcdatamodel, os modelos de dados, os coordenadores de persistência e o contexto. Porém, trago-lhes boas novas! A primei-

ra delas se chama Realm (https://realm.io/) Essa biblioteca promete (e cumpre) deixar o trabalho com dados mais simples e, o mais importante, mais rápido que qualquer outra biblioteca ORM (Object-Relational Mapping). Sobre esta última promessa, posso afirmar que nos testes que fiz com o SQLite puro

public class Dog extends RealmObject { public String name; public int age; } Dog dog = new Dog(); dog.name = “Rex”; dog.age = 1; Realm realm = Realm.getDefaultInstance(); realm.beginTransaction(); realm.copyToRealm(dog); realm.commitTransaction(); RealmResults<Dog> pups = realm.where(Dog.class) .lessThan(“age”, 2) .findAll();

Para o leitor ter noção da beleza do código gerado com a Realm, veja este exemplo retirado da própria página oficial (Android):

aplicação mobile de nível médio para cima. Com muita frequência, temos um suporte de um sistema back end - seja como fornecedor de dados ou como um mantenedor de informações geradas pelo mobile. Independentemente da razão, esse caminho de mão dupla entre cliente e servidor deve ser construído.

O seu código ficará condizente com o restante do projeto, com uma roupagem mais adequada ao mundo orientado a objetos. Além disso, perceba que o uso de cláusulas de pesquisa de dados também fica mais compreensível e poderoso. Bem, mas as novidades não param por aí. Vamos passar para o próximo nível de uma

E, para piorar o cenário, temos a questão de notificações. Por exemplo: imagine uma aplicação para Internet das Coisas que alerta o usuário caso o nível de gás na cozinha ultrapasse um dado valor. Quando o servidor recebe um valor alarmante, o aplicativo móvel deve ser avisado e, consequentemente, alertar o usuário.

do Android SDK, realmente foi mais rápido. Porém, não posso concluir categoricamente que eles cumprem esse requisito.


27 // Mobilidade é tudo

A boa nova que trago nesse caso se chama Firebase. Uma das principais estrelas do último Google IO, permite File Storage e Google Cloud Messaging Push Notification, dentre outras coisas. No site da ferramenta (https://www.firebase.com/), é possível criar uma base de dados NOSql com JSON. E na aplicação (Android, iOS, Rect, dentre outros), basta colocar um listener para mudança de dados. Simples assim. A aplicação recebe listagem de dados. Tem possibilidade de filtros. E o mais importante: qualquer mudança na base de dados dispara automaticamente um push para seu listener, que pode atualizar a interface gráfica quase que em tempo real. Para deixar mais claro, segue um exemplo da própria página oficial do Firebase para uso no iPhone com Swift:

// Get a reference to our posts var ref = Firebase(url:”https://docs-examples.firebaseio.com/web/saving-data/fireblog/ posts”) // Get the data on a post that has changed ref.observeEventType(.ChildChanged, withBlock: { snapshot in let title = snapshot.value.objectForKey(“title”) as? String println(“The updated post title is \(title)”) })

Existe uma diversidade de frameworks, bibliotecas e APIs (Application Programming Interface) que trabalham com dados. Porém, confesso aos amigos leitores que a Realm e o Firebase impressionaram de verdade este que vos fala. Com esse par de ferramentas, a parte de dados da sua aplicação, incluindo a parte de servidor e push notifications, pode ser feita, na sua totalidade, em algumas horas.

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



29 // Open Plataform

Open Platform - Conheça as vantagens de se abrir a essa ideia Por Nicolás Coniglio, Gerente de desenvolvimento do Mercado Livre no Brasil

Em meados de 2010, o Mercado Livre estava prestes a tomar uma grande decisão: desacoplar o código-fonte do seu marketplace, criando uma plataforma aberta. Nessa época, o site já era um gigante do setor, e essa mudança foi decisiva para o negócio continuar crescendo. Existem prós e contras na transformação de uma plataforma monolítica em uma plataforma aberta, por isso alguns pontos devem ser colocados na balança. De um lado, há a questão da performance: é dito que uma plataforma monolítica tem melhor performance, o que não é necessariamente real, pois tudo depende de como essa plataforma é desenvolvida. Por outro lado, uma reconhecida vantagem do modelo Open Platform é a escalabilidade. Seguindo com a avaliação, ainda vemos que o modelo monolítico garante um maior controle sobre a plataforma. Porém, do lado de uma plataforma aberta há a flexibilidade. No caso do Mercado Livre, entre os pontos negativos de ter uma plataforma monolítica estava o fato de que uma única atualização levava cerca de uma semana para ser feita, o que já comprometia a competitividade da empresa no mercado. E, com o passar dos anos e o crescimento contínuo do site, mais pessoas entravam para a equipe, e mais

complicado se tornava escrever o código-fonte. Depois de muita análise e esforço, e como consequência de um plano de ação bem executado, em meados de 2011, a nossa API estava pronta e disponível em uma plataforma aberta. Além de solucionar as questões citadas acima, a partir de então, as lojas virtuais já existentes passaram a se integrar e anunciar seus produtos dentro do nosso site, simplesmente espelhando seus anúncios, e gerando mais lucro para as lojas e também para a empresa. Como diz Daniel Rabinovich, CTO do Mercado Livre: “nós comemos o mesmo peixe que vendemos”. Ou seja, o Mercado Livre utiliza em seu marketplace - no front-end, no app mobile e no back-end -, a mesma API que é aberta ao público e que é utilizada por desenvolvedores independentes. Com a API disponível, a nossa equipe de desenvolvimento foi segmentada, cada qual responsável por uma funcionalidade específica e com atuação independente. Desse modo, cada time trabalha de maneira focada e bastante eficiente, visando à melhoria contínua da funcionalidade. A API que fizemos é RESTful. Essa escolha se deu pela simplicidade e facilidade de


30 // Open iMasters Plataform

ser utilizada em qualquer dispositivo que interprete HTML. Ao colocar num browser qualquer, por exemplo, a URL https://api. mercadolibre.com/users/21471498, o retorno pode ser analisado por qualquer pessoa, mesmo leiga em tecnologia. O site da comunidade MELI Developers (developers. mercadolibre.com) traz esses e outros detalhes técnicos sobre a utilização da API e a indicação de SDKs para diversas linguagens que facilitam ainda mais o desenvolvimento.

futuro promissor. Hoje a empresa caminha a passos largos e não segue sozinha. Todos os usuários do seu ecossistema de serviços e de sua API, sejam vendedores, compradores ou integradores, colhem os frutos desse esforço e da inovação gerada a partir dele.

No caso do Mercado Livre, entre os pontos negativos de ter uma plataforma monolítica estava o fato de que uma única atualização levava cerca de uma semana para ser feita, o que já comprometia a competitividade da empresa no mercado Além de toda essa simplicidade, outra vantagem que atrai milhares de integradores à comunidade é a possibilidade de monetização, isto é, a possibilidade de gerar receita utilizando a API. Sem pagar absolutamente nada por isso. No catálogo apps.mercadolibre.com, estão disponíveis diversas aplicações certificadas pelo Mercado Livre, criadas por esses desenvolvedores. Aplicações essas que geram monetização para os desenvolvedores, facilitam a vida dos vendedores que as adquirem e agregam muito valor ao ecossistema do marketplace.

NICOLÁS CONIGLIO é gerente de Desenvolvimento do Mercado Livre no Brasil desde 2014, atuando como head de Open Platform em todos os 18 países nos quais a empresa atua. Trabalhou inicialmente no Mercado Livre na Argentina, com foco no desenvolvimento que permitiu a entrada de lojas oficiais (grandes marcas) no marketplace da empresa. Antes, Nicolás atuou como Business Development na Neosur, abrindo frentes técnico-comerciais nos EUA e no Chile, e

Enfim, a experiência desses anos mostra que a decisão de abrir a plataforma levou a empresa a trilhar estradas acidentadas e caminhos tortuosos. Mas foi passando por essas mesmas estradas e caminhos tortuosos que o Mercado Livre pavimentou seu

também teve passagens pela Coca-Cola e HP, na Argentina. Formado em Engenharia de Sistemas pela Universidade Católica de Córdoba, lecionou nessa mesma universidade entre 2009 e 2012. nicolas.coniglio@mercadolivre.com


Drops do mercado

31

Wirecard + Moip: soluções de pagamento para o seu negócio O Moip faz parte de uma das maiores e mais inovadoras empresas de pagamentos do mundo - a Wirecard tem um valor de mercado superior a 20 bilhões de reais e, com o Moip, passa a operar em todos os continentes. Desde a aquisição, em fevereiro de 2016, a missão de facilitar e desburocratizar serviços financeiros para empreendedores no Brasil está ainda mais presente no dia a dia da empresa. O primeiro investimento, ainda em 2009, capitaneado pelos fundos de investimento Ideiasnet e Arpex, ajudou o Moip a desenvolver a tecnologia e iniciar a formação do time. Desde então, a equipe trabalha duro para construir a marca, a cultura e criar um produto/ serviço que realmente impacte vida de todos os clientes. Em 2015, a empresa ajudou mais de 100 mil deles a receber pagamentos. O Moip continua operando de forma independente, com o mesmo nome, com a mesma equipe e com o mesmo compromisso e dedicação que fizeram o Moip conhecido em todo o Brasil.

Novos módulos Gerencianet para e-commerce A Gerencianet disponibilizou a atualização de novos módulos para e-commerce: Magento, Woocommerce, Prestashop e Opencart. Os novos módulos estão disponíveis com checkout transparente e são compatíveis com as versões mais atuais de cada plataforma. A integração pode ser realizada com a nova API Gerencianet, mais rápida, completa e disponível em cinco linguagens diferentes: PHP, .NET, Node JS, Ruby e Python. Outra vantagem da nova API é o Sandbox, que permite o integrador realizar todo o fluxo de pagamento em um ambiente 100% de teste. A documentação completa está disponível na seção Desenvolvedores do portal gerencianet.com.br

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.

DialHost lança novos planos de hospedagem com foco na transparência com o cliente Em um mercado acirrado entre diversas empresas, nacionais e internacionais, a DialHost aposta na transparência e relacionamento próximo para atender as necessidades de cada cliente. A proposta dos novos planos é trazer para seus clientes, serviços desde o uso básico até recursos mais avançados, de forma bem clara. Dentre as principais novas características está o plano básico. O plano é focado na criação de pequenos sites e na utilização do criador de sites da empresa. Para os outros planos de hospedagem temos novos limites de espaço em disco com até 25GB, para os planos compartilhados. E Caixas de e-mail muito grandes, com até 15GB por conta. A Hospedagem cloud agora conta com acesso SSH, para aqueles que necessitam de recursos mais avançados. Além disto, clientes da hospedagem compartilhada Linux poderão configurar certificados SSL Grátis instalando certificados emitidos pela Let’s Encrypt™.


32 // Docker

Utilizando Docker para escalonar aplicações Node.Js Por Bruno Fidelis, desenvolvedor Web na KingHost

Ao iniciar um projeto, é muito importante conhecer os requisitos do sistema, bem como saber qual carga de acesso que ele deve suportar. O Node.JS é uma ótima solução para criar aplicações onde ocorrem entrada e saída de muitos dados, pois possui uma grande facilidade de escalonamento horizontal. Neste artigo, vamos demonstrar como configurar o ambiente de desenvolvimento para a criação de projetos escalonáveis com o Docker. Utilizando essa plataforma aberta, é possível realizar deploys e escalonar aplicações com tranquilidade. Além disso, o Docker providencia um ambiente isolado e leve para sua aplicação, graças à virtualização por containers. A grande diferença entre a virtualização por containers e a de uma VM (Virtual Machine) é o consumo de espaço e recursos utilizados pela máquina. O motivo dessa disparidade é o fato de a VM emular o hardware de uma máquina utilizando uma camada denominada hypervisor, enquanto um container faz a virtualização pelo próprio sistema operacional. Em outras palavras, um container faz o agrupamento e o isolamento de recursos. Tudo o que está dentro de um container não enxerga o que está fora (Host). A virtualização por container já existe há algum tempo, mas o Docker acrescenta um grande diferencial ao processo. No Docker,

cada imagem contém várias camadas, sendo assim, ele utiliza o UnionFS para reunir todas as camadas. Esse é um processo que concede rapidez, pois não há a necessidade de fazer rebuild para atualizar as imagens. Dito isso, vamos configurar um ambiente em Docker para uma aplicação NodeJs. Um proxy reverso na frente das instâncias da aplicação é uma das configurações padrão que vamos utilizar. Não será necessário realizar qualquer tipo de configuração manual. Graças à comunidade, as imagens já estão prontas, sendo necessário apenas realizar pequenos ajustes para sua aplicação rodar. Para iniciar o proxy (vamos assumir que você já tenha instalado o Docker), basta executar o seguinte comando: $ docker run -d -p 80:80 -v /var/run/ docker.sock:/tmp/docker.sock -t jwilder/ nginx-proxy Ao executar o “run”, o daemon do Docker irá procurar pela imagem “jwilder/nginx-proxy” na sua máquina. Caso não encontre, ele irá baixar diretamente do Docker Hub. O comando “-v /var/run/docker.sock:/tmp/ docker.sock” faz com que os dois arquivos fiquem sincronizados, tanto no host quanto no container. Mais informações sobre a imagem você pode verificar no link https://hub. docker.com/r/jwilder/nginx-proxy/


33 // Docker

Agora é possível subir o container da aplicação com o seguinte comando: $ docker run -d -e VIRTUAL_ HOST=<HostDoSeuApp> --expose 8888 -v “<CaminhoDoSeuApp>”:/usr/src/app -w /usr/src/app node:4.4 node index.js Esse comando é similar ao primeiro, sendo a passagem da variável VIRTUAL_HOST a diferença-chave para o funcionamento dessa configuração. O comando deve conter o host que aponta para sua máquina - essa variável é utilizada para a configuração do proxy. Será necessário deixar a porta em que o servidor node está rodando aberta para o host (comando “--expose”).

Como foi demonstrado acima, é possível realizar a configuração de ambientes de maneira simples e rápida. Mesmo não sendo ainda recomendada a utilização dessa tecnologia (Docker) em produção, acreditamos que seja muito importante o desenvolvimento do seu estudo. Consideramos que pelo poder de automação, fácil configuração e gerenciamento que o método propõe, em um futuro próximo, ele fará parte do desenvolvimento das aplicações web e serviços cloud.

No Docker, cada imagem contém várias camadas, sendo assim, ele utiliza o UnionFS para reunir todas as camadas Com isso, você tem seu ambiente pronto para ser executado localmente ou em produção. Além disso, você pode executar o comando para iniciar outro container da aplicação e, assim, escalar mais instâncias. O Docker possui um sistema de versionamento de imagens pelo Docker Hub. Assim, se o autor da imagem fizer alguma atualização na configuração da imagem, ele pode fazer um commit e um push. Da mesma forma, as pessoas que possuem a imagem podem usar o comando pull para atualizar a sua versão. Além disso, é possível realizar rollbacks em alterações efetuadas no container.

BRUNO FIDELIS é estudante de Ciência da Computação e atualmente trabalha como Desenvolvedor Web na KingHost. Adora estudar novas tecnologias e criar soluções inteligentes a partir desse conhecimento.

bruno.fidelis@kinghost.com.br



Entrevista

//

35

Entrevista: Felipe Penaranda Silva Latin America Security Tiger Team Por Alex Lattaro, para Redação iMasters


Entrevista

//

36

Segurança da Informação: o lugar que lhe cabe na Nova Revolução Industrial Mobile First, API First, smart cities, Internet das Coisas, nova revolução industrial. Reconhece esses termos? Há algum tempo eles estão em voga entre desenvolvedores e profissionais de Tecnologia da Informação. Mas a pergunta que queremos fazer para você, desenvolvedor é: você acha que está pensando o suficiente em segurança? Nesta entrevista, Felipe Penaranda Silva, Latin America Security Tiger Team da IBM, fala com a propriedade de quem vivencia a realidade do setor, e mostra sua preocupação com o assunto: “quando falamos de smart cities, estamos falando de uma área de ataque muito maior. As empresas que atuam neste setor estão preocupadas com a segurança das informações e das demais pessoas? Elas estão preparadas para o caos que uma invasão pode trazer?”, questiona Felipe.

depois alguém se toca que a segurança da informação é fundamental. E isso é uma constatação unânime de todos os profissionais de todas as áreas. Se você não tiver a questão da segurança da informação muito bem resolvida, você coloca em risco todo o projeto. O que acaba acontecendo é que existe o projeto, a lógica do negócio e APPs extremamente vulneráveis. E quando a gente vai pra smart cities e IoT, a preocupação aumenta muito, porque a área de ataque é muito maior. A vulnerabilidade é muito maior. IM: Juridicamente, em termos de segurança da informação, você acredita que estamos preparados para esse novo mundo de IoT?

iMasters: Muito se fala em Mobile First e em API First. Entretanto, em um cenário de IoT, na chamada “Nova Revolução Industrial” e no contexto de smart cities, não seria mais interessante se falar em Security First?

Felipe: No aspecto jurídico, temos a questão da privacidade das informações e das pessoas. O Brasil é um dos países mais atrasados nisso. Enquanto a Argentina e o Chile já têm leis de privacidades de dados, o Brasil está colocando a pauta no Congresso, em consulta pública... Apesar do Marco Civil, a gente não tem uma lei federal sobre privacidade de dados.

Felipe: Já estão falando há algum tempo sobre smart cities e agora, nos últimos anos e com mais força, sobre a Internet das Coisas. E isso, com certeza, tem mexido muito com a área de segurança da informação porque, infelizmente, em todas essas inovações, o pessoal acaba lembrando da segurança da informação só no final. A área acaba sendo esquecida. O pessoal inova, cria novos modelos e só

Outra questão, é como que essas smart cities vão se estruturar em questão de organização. Se acontece um incidente, como uma invasão no sistema de controle de tráfego, por exemplo, quem na cidade, dentro de uma administração municipal ou estadual, será responsável por conter esse incidente? Ainda não existe uma preparação para isso. É preciso pensar na questão da governança e dos processos que precisam


Entrevista

ser estruturados. IM: O Gartner publicou uma pesquisa recente, dizendo que umas das principais barreiras para o avanço do conceito de IoT é a segurança. Como as empresas e os desenvolvedores devem se preparar para essa mudança de conceito? Felipe: Nesse novo mundo para o qual estamos caminhando, acredito que os fabricantes que estão investindo em IoT e smart cities, deveriam se preocupar com uma coisa que inglês chamamos de security by design, que é quando os apps já nascem de formas seguras. E não os desenvolver e só depois se preocupar com a segurança dos códigos. 35% dos apps móveis disponíveis não têm checagem nenhuma de segurança. E eles deveriam, na verdade, é nascer seguros. É preciso focar em: código seguro, mecanismos corretos de aplicação de autenticação e acesso e criptografia, porque a gente vê vários sistemas comunicando informações abertas, que podem ser capturadas sem nenhum tipo de criptografia. No ano passado, a Fiat Chrysler teve que fazer um recall no mundo inteiro de um dos seus modelos porque se descobriu que através do rádio era possível invadir o sistema que do carro. Imagina o prejuízo que eles não tiveram por não pensar em cyber security? Além disso, outro caminho que eu vejo, são as certificações. Sistemas tradicionais, empresas, provedores, todos necessitarão de órgãos de certificação a fim de validar seus produtos. Certificar as aplicações que realmente possuem um código seguro, um código que foi desenvolvido com a preocupação de endereçar todos os riscos para aquele contexto em que será aplicado. Então, inevitavelmente nós precisaremos de algum mecanismo nesta linha. Isso

//

37

naturalmente irá obrigar as empresas que fornecem este tipo de software. Eles não terão opção, terão que desenvolver uma cultura na área de desenvolvimento, precisarão entender que as coisas têm que ser desenvolvidas de forma segura desde o ponto zero da aplicação. Uma vez que isso se torne mandatório na indústria e no mercado, cria-se um pacto direto nas empresas que atuarão neste setor. Infelizmente, é o caminho que precisa ser tomado. IM: Vamos falar de segurança nos meios de pagamento. Convenhamos que o cartão de crédito não é muito confiável, visto que a chave primária e o código de segurança estão visíveis para qual-


Entrevista

//

38

quer pessoa. Então, atualmente, temos tokens, criptografia fim a fim, autenticação etc. Com todo esse desenvolvimento, como você vê o futuro da segurança nos meios de pagamento?

muito grande de profissionais voltados para segurança da informação.

Felipe: No Brasil, sempre tivemos um número enorme de fraudes nos meios de pagamento, mas com a vinda dos cartões chipados isso diminui no meio físico. Agora começam a aparecer outros dispositivos de pagamento. A percepção que eu tenho quando você fala sobre outros dispositivos e meios de pagamento, eu acredito que já existe neste segmento especifico uma maior conscientização sobre os aspectos de segurança. Existe um padrão amplamente utilizado, que completou mais de dez anos, o PCIDSS (payments card industry data security standards), que está na versão 3.2, se não em engano, que é amplamente divulgado pelo mundo inteiro. Sendo assim, neste mundo de meios de pagamento, esse modelo fez com que vários segmentos da indústria que não olhavam para segurança da informação começassem a olhar. Este padrão, sempre se atualiza em função do surgimento de novas tecnologias. É claro que as superfícies de ataque aumentam bastante com o surgimento de novos dispositivos, porém, o padrão PCI foi um caminho muito interessante que mitigou os riscos nesse escopo.

Felipe: Essa é uma discussão que acontece há muito tempo e a gente viu nos últimos anos os times de aplicação e desenvolvimento serem integrados ao time de segurança da informação, inclusive do time de devops. Hoje, nós temos mecanismos, que facilitem isso, como a metodologia Agile. Existem mecanismos na nuvem e mesmo em plataformas, que você consegue fazer com que os times trabalhem juntos.

IM: Como você enxerga a evolução da segurança em um cenário de big data? Felipe: Você começa a ter um conjunto enorme de informações e hoje, já possuímos, sim, plataformas que podem capturar e gerenciar uma quantidade gigantesca de informações e colocar inteligência em cima de disso. Mas o que preocupa um pouco nesse aspecto é a qualidade dos profissionais. No Brasil, você tem uma carência

IM: Como você vê a proximidade do time de segurança com o time de front-end?

Você tem algumas ferramentas como a análise de caixa branca, sendo mais uma opção que o desenvolvedor tem dentro do próprio ambiente de desenvolvimento. Ele já faz a varredura do código dele, ou na nuvem, onde, com um clique, ele coloca o código, integrando tudo isso no próprio esquema de desenvolvimento. E também temos a análise caixa preta, quando a aplicação já está na homologação, e você não tem mais acesso ao código da aplicação, então, faz uma outra análise que complemente a análise de caixa branca. Aqui você olha para a aplicação, a infraestrutura, onde essa aplicação está e se está deployada. Assim, você consegue manter essa agilidade entre todos os componentes de segurança, integrados neste ciclo de desenvolvimento. IM: Muitas empresas, atualmente, trabalham com BYOD. Você vê esta prática como uma possível falha de segurança, ou uma oportunidade de proteger melhor o seu sistema? Felipe: Essa é uma prática para qual as empresas já têm se atentado, se preparado... Quando a gente fala em BYOD, é,


Entrevista

//

39

“No Brasil, você tem uma carência muito grande de profissionais voltados para segurança da informação” sem dúvidas, mais uma superfície de ataque que as empresas estão trazendo para dentro delas. Mas mal, ou bem, as empresas têm soluções que já conseguem mitigar os riscos do BYOD. Mas quando falamos de smart cities, de IoT, é algo muito maior! São coisas que não estão dentro de uma empresa, ou organização, onde se tem controle de entrada, saída e segurança. Temos que pensar na segurança física dos devices. Como vamos fazer o controle de alguém que pode fazer tudo a distância? Tem aquele caso que ficou famoso no mundo inteiro, conhecido como Stuxnet, que era um código malicioso usado para sabotar as plantas de enriquecimento de urânio no Irã. Aquilo foi um pendrive que colocaram diretamente no dispositivo. IM: É sabido que a maior parte das falhas se segurança vem dos usuários do sistema, e não do código em si. Como você vê a necessidade de um documento de política de segurança da informação, e a quais empresas esse documento se aplica e como isso pode ser escalado? Felipe: Dentro de uma organização é simples: você tem os documentos, as políticas e as campanhas de conscientização. Porém, em SC e IoT, você terá uma população que irá interagir com as aplicações. Como conscientizar toda uma população de que não adianta ter toda a eficiência e a automação, se ela não utilizar os dispositivos de forma segura? É preciso que os governos, nas suas esferas federais, estaduais e municipais, atuem como parte das iniciativas de smart cities e tenham um mecanismo de conscientização global dos cidadãos.

Eles precisam saber que para que se tenha uma cidade segura e inteligente, na qual os riscos do caos e tragédias sejam mínimos, o cidadão faz parte dessa frente de segurança da informação. Isso se relaciona com aquilo que eu disse sobre o aspecto judicial. Pensando na organização de como os governos irão se estruturar para manter equipes de respostas a incidentes e como eles irão se estruturar para ter mecanismos de conscientização uma população. IM: Outro assunto que está na moda é a inteligência artificial. Temos diversas aplicações de IA espalhadas pela web, captando nossas informações a fim de treinar uma rede neural. Como garantir a segurança dessas informações? Felipe: A IBM fez um anúncio muito grande dia 10 de maio sobre a plataforma Watson, uma plataforma de computação cognitiva. Agora você tem um conjunto enorme de informações sendo geradas ao redor do mundo. Um malware que explorou um dispositivo no leste europeu, por exemplo, no minuto seguinte estará explorando algo aqui no Brasil. Então, se você tem um mecanismo de consumo dessas informações, você dá mais inteligência ao sistema de segurança, só que essas informações estruturadas, ou inteligência de segurança, são 8% do total das informações, ou seja, que podem ser consumidas por meio de sistemas automatizados. Então, mais de 90% são informações são não estruturadas, wiks, blogs, pesquisas, papers e conferências sobre segurança. É um monte de informação não estruturada que está disponível por aí e que é impossível de ser consumida. E é nesse ponto que entra a inteligência artificial, que atu-


Entrevista

//

40

almente possui uma vertente chamada cognitive security, que é uma nova área da segurança da informação. Então, com esse sistema, agora é possível, consumir todas estas informações acessadas a fim de treinar os sistemas que se utilizam de inteligência artificial para que sirvam de insumo aos analistas de segurança da informação. Sendo assim, o propósito em se utilizar a inteligência artificial e sistemas cognitivos é, justamente, para reduzir ao máximo o tempo de resposta. Exemplo: se acontece uma invasão no sistema semafórico, e você tem um sistema que varre continuamente todas as informações não estruturadas que vagam pela rede, você consegue, em poucos minutos, ou segundos, disponibilizar esta informação para que o analista de segurança, ou o operador de segurança, ou cara que está no front-end dos clientes, rapidamente possa responder a isso, uma vez que está suportado para um sistema cognitivo de segurança da informação. Do ano passado par cá, isso ganhou uma relevância muito grande, e é isso que se espera destes sistemas cognitivos utilizados para cyber secutiry. IM: Como você enxerga o novo cenário de CyberSecurity? Quais os rumos que a segurança da informação deve tomar para ser mais assertiva e eficiente? Felipe: A computação cognitiva é, sem dúvida, um dos rumos que a segurança da informação vai trilhar, porque este volume enorme de informações irá aumentar exponencialmente, então, o cenário começa a ficar humanamente impossível de ser controlado. Logo, cabe aos sistemas cognitivos, com sua capacidade escalar gigantesca de processar este conjunto de informações, entende-las de uma forma cognitiva, e entregar isto de prontidão para um analista de segurança. Para que tenhamos um ambiente com um risco melhor

gerenciado, já que não existe risco zero quando falamos de segurança. IM: Para finalizar, quais dicas de segurança você daria para um time de desenvolvedores? Podem ser ferramentas, materiais para estudo, práticas... Aquilo que você acredita ser indispensável para um bom time de desenvolvedores. Felipe: O que eu gostaria de falar para cada desenvolvedor, olhando nos olhos dele é: independentemente de você ter alguma regulamentação que te obrigue a isso, como o PCI, por exemplo; independente de algum tipo de certificação, o desenvolvedor é uma pessoa chave para construir um ambiente seguro do ponto de vista de cyber secutiry. Então, eu acho que todo desenvolvedor deveria ir ao site da OWASP.org, que é a referência mundial neste mercado e que já existe há muitos anos na na área de desenvolvimento de código seguro. Lá você encontrará os top 10 do owasp dizendo quais são as dez maiores vulnerabilidades nas aplicações tradicionais. De uns anos para cá, eles trabalharam em um top 10 para aplicações móveis e agora já existe um trabalho das top 10 do owasp para IoT. Hoje, o desenvolvimento de código seguro é uma raridade. Eu trabalho com diversos seguimentos, financeiro, hotéis, varejo, governo dentre outros. E a situação é preocupante. Você vê times de desenvolvimento que não têm absolutamente preocupação nenhuma com desenvolvimento seguro. Então, o que eu gostaria de deixar como mensagem para o desenvolvedor é isso: primeiro, eles são peças fundamentais para o desenvolvimento seguro! Segundo, que tenham cada vez mais esse site como referência.


Drops do mercado

41

.STORE abre suas portas! A Radix - operadora de registro para algumas das novas extensões mais populares, como .online, .site, .website, .tech - anunciou o lançamento de um novo domínio, o .STORE, em junho. Esta é a primeira extensão especial para e-commerce. Este novo domínio permite aos usuários ter um site como www.SeuNegocio.store. É ideal para qualquer um que vende online, seja uma empresa ou um indivíduo, seja para comercialização de móveis, bijuteria, roupas, flores, alimentos ou mesmo serviços, entre outros. O domínio .STORE é uma excelente opção para marcas de varejo, startups, shopping de portais na Internet, pequenos negócios locais e soluções para e-commerce. No dia do seu lançamento, .STORE recebeu 25.000 pedidos de registro de domínio provenientes de usuários do mundo inteiro.

Let’s Encrypt na KingHost: SSL/ TLS gratuito em hospedagem compartilhada

Programa de benefícios da iugu para startups celebra 1 ano ajudando empreendedores brasileiros a crescer

O Let’s Encrypt é um projeto open source que visa disponibilizar certificados gratuitos e automatizados de navegação segura. A iniciativa é recente e ainda esbarra em dificuldades de integração junto a provedores de hospedagem no Brasil. Neste cenário, a KingHost, ao ser a primeira hospedagem de sites a disponibilizar o Let’s Encript inclusive para uso na hospedagem compartilhada, está reafirmando seu compromisso com a inovação e o uso seguro da internet. Ao contrário dos certificados auto-assinados (que também são livres, mas não são confiáveis), o Let’s Encrypt vem se mostrando extremamente eficiente e já foi adotado por mais de 3,8 milhões de sites ao redor do mundo. O Let’s Encrypt criptografa a conexão entre o site e o navegador, entregando sinais de segurança ao usuário, como o característico cadeado verde na barra de endereços. Saiba mais sobre o Let’s Encrypt na KingHost acessando: kingho.st/lets-encrypt

Com mais de 25 parceiros e quase 100 startups inscritas, o Ignição comemorou em julho o aniversário de um ano desde a primeira empresa aprovada. Por causa da ocasião especial, a iugu vai convidar para sua sede, em São Paulo, todas as startups que fazem parte do programa, para que possam tomar um café e bater um papo com os cofundadores da infraestrutura financeira. O programa de benefícios para startups criado pela iugu oferece tarifas reduzidas e suporte premium para sua infraestrutura financeira, além de mentoria e workshops sobre empreendedorismo — como o Projeto Astronauta (projetoastronauta.com.br), que ajuda as empresas a construírem seu plano de go-to-market. A inscrição de startups para o Ignição é aberta para todas as empresas associadas a um dos parceiros do programa. Veja a lista completa de parceiros e os requisitos para inscrição no site ignicao.iugu.com.

IBM Cloud Tools for Swift A partir de agora, todo desenvolvedor Swift pode trabalhar com a linguagem de programação na nuvem IBM. O IBM Cloud Tools for Swift (ICT) possibilita que o desenvolvedor crie aplicações que abrangem tanto o cliente como código do lado do servidor. O IBM Cloud Tools fot Swift proporciona uma interface simples para o desenvolvimento, gestão e monitoramento de aplicações Swift end-to-end. Com o ICT é possível estender as aplicações móveis e conectá-las aos serviços de nuvem do IBM Bluemix com um ambiente local de desenvolvimento que complementa o ambiente Xcode. http://ibm.biz/cloudtoolsforswift


42 // Desenvolvimento

Estruturando um aplicativo em React.JS Por Mauricio Soares, Desenvolvedor na Loggi

Não podemos negar que hoje a stack de front-end possui uma vasta variedade de frameworks e bibliotecas. E nessa variedade, uma biblioteca vem se destacando no mercado: a React.js. Neste artigo, vou cobrir uma estrutura escalável e de fácil manutenibilidade para você desenvolver o seu próximo aplicativo.

1. Processo de build Hoje, se você usa uma biblioteca como React.js, provavelmente também já utiliza um processo de build para otimizar o tempo de desenvolvimento. O único ponto que quero ressaltar para seu processo de build é que, para essa estrutura funcionar bem, você deve usar uma configuração para que o seu build reconheça a sua pasta raiz como uma possível pasta de módulos do npm. Por exemplo, se você tentar importar o arquivo components/my-component, ele primeiro vai buscar dentro de node_modules, e, em seguida, vai buscar dentro da sua pasta raiz, que, no caso, teria uma pasta chamada componentes com um arquivo chamado my-component.js. Aqui estão algumas opções dependendo do processo de build que você usa:

webpack: http://bit.ly/28QV7rc grunt/gulp com browserify: http://bit.ly/28NnSRM

2. Estrutura de pastas Vamos começar com uma estrutura de pastas um pouco diferente:

screens shared actions stores index.js 2.1. Screens Pense na screen como os componentes com mais responsabilidade no seu app, geralmente são componentes que estão ligados à store da sua aplicação de alguma maneira. A pasta screens da raiz da sua aplicação também pode conter os componentes de suas rotas, por exemplo:

screens

- dashboard - profile - notifications


43 // Desenvolvimento

Agora vamos ver mais a fundo o que temos dentro da pasta dashboard.

dashboard

- screens - componentes - index.js

Um exemplo visual de como seria a tela de dashboard, separada em screens: A área vermelha seria a lista de informações da dashboard, e a azul seria uma barra lateral possivelmente ligada a ações que influenciam a lista. A pasta components é onde os seus componentes sem muita responsabilidades ficam. Estes só podem ser usados pela screen em que eles estiverem (veremos como compartilhá-los mais à frente). O arquivo index.js é a implementação do seu componente em si.

2.2. Shared Dentro da pasta shared, teremos tudo que for compartilhado por vários pontos da sua aplicação. Um exemplo da pasta de shared:

Dependendo da complexidade do seu app, você pode ter componentes que se conectam com a store que estão aninhados. Nesses casos, você criaria outra pasta de screens, com a mesma estrutura mostrada acima.

shared

- utils - contants - components Em utils, podemos ter vários tipos de utilitários que usamos em nossa aplicação. Um excelente exemplo para o uso da pasta utils seria uma autenticação de login, que seria importado nos componentes em que o usuário precisa estar autenticado para usar. Na pasta constants, podemos colocar as ações de sua lib de flux ou as urls das suas rotas - isso pode variar muito de acordo com o seu projeto. Já na pasta components ficam os componentes que compartilhamos em toda a nossa aplicação. São geralmente componentes mais genéricos.


44 // Desenvolvimento

Agora, vamos ver como seria usar esses arquivos dentro de uma screen.

import Select from ‘shared/componentes/select’; import dashboardConstants from ‘shared/constants/dashboard’; import auth from ‘shared/utils/auth’; Note que estamos importando o módulo da mesma maneira que importaríamos algo instalado via NPM (como explicado no primeiro tópico).

2.3. Actions A pasta actions contém todas as ações da sua aplicação, e elas podem ser separadas baseadas nas rotas que você usa, ou até mesmo por responsabilidades que suas ações terão. Um exemplo:

actions

- dashboard.js - profile.js - notifications.js

2.4. Stores Semelhante às ações, as stores podem ser fragmentadas como achar melhor. Uma maneira de organizá-las seria por responsabilidades do seu app. Exemplo:

stores

- products.js - form.js - notifications.js

2.5. index.js O index.js é o ponto de entrada de nossa aplicação. Ele é o arquivo no qual devemos

colocar todas as implementações genéricas que vão ser usadas pela sua aplicação inteira, como a configuração das rotas do nosso app, o ponto de entrada da biblioteca de Flux que estivermos utilizando, usar o utilitário de autenticação para filtrar usuários logados, e assim vai.

3. Testes Não vou cobrir como fazer testes, acho que esse assunto está além deste artigo, mas como organizar os seus testes é algo que se encaixa muito bem aqui. Hoje, a maioria das bibliotecas de teste, ao serem executadas, busca recursivamente todos os arquivos dentro de uma pasta específica, ou que sigam um mesmo padrão (auth.test.js, por exemplo), e os executa automaticamente. Essas configurações podem ser feitas no seu processo de build. Tendo isso em mente, podemos deixar todos os testes no mesmo diretório do arquivo que está sendo testado.

app

- shared -- utils --- __tests__ ---- auth.js --- auth.js Isso se aplica a qualquer lugar em que um teste precise ser feito. Se tivermos testes dentro de componentes, ficaria algo semelhante a isto:

app

- shared -- componentes --- select ---- __tests__ ----- index.js ---- index.js


45 // Desenvolvimento

4. Nomeação Você deve ter notado que o nome index. js foi usado com certa frequência. Gosto de pensar que nossa aplicação deve ser a mais genérica possível, e nada mais genérico que um arquivo chamado index.js. Todos os componentes e screens são organizados por pastas que têm um nome declarativo, como dashboard. Dentro dessa pasta, o arquivo de implementação sempre se chamará index.js, caso contrário, o arquivo pode ter o nome do módulo.

5. Conclusão Falamos sobre diversas abordagens neste artigo, mas vamos rever aqui os pontos mais vantajosos de usar essa estrutura: - Organização Nessa estrutura, fica muito claro onde cada arquivo deve ficar. Tem um componente que se conecta com a store? Ele é uma screen. Tem um módulo genérico que vai ser compartilhado por vários lugares? Ele vai dentro de shared. É muito simples de aplicar, basta seguir algumas regras. - Manutenção É muito simples achar arquivos nessa estrutura. Você pode descobrir onde está o arquivo de um componente só de olhar para o seu app no browser. Nessa estrutura de pastas com uma nomeação declarativa, que é bem intuitiva para desenvolvedores novos, achar componentes e testes se torna algo banal. Nenhuma solução é uma bala de prata. Se essa estrutura não se encaixar no seu app, modifique-a! Crie algo novo e compartilhe com a comunidade, novas ideias são sempre bem-vindas.

Veja um exemplo funcional dessa estrutura no link: https://github.com/mauriciosoares/ react-screens-boilerplate

MAURICIO SOARES é um desenvolvedor com 5 anos de experiência em Front End. Já trabalhou em empresas grandes, como Rede Record e Netshoes, e hoje tem focado 100% do seu tempo trabalhando com React, Redux e Relay na empresa Loggi.

m.soares2603@gmail.com


Conheça as novas features que viabilizam desde integrações simples até as mais complexas:

Multipedido

One Click

Pré-autorização

Custódia

Connect

Conta transparente

Integre em um minuto sem stress

Viabilize seu modelo de negócio

Capture pagamentos onde seu cliente estiver

Seja transparente de verdade!

TORNE-SE UM BETA TESTER Feito para o seu negócio


47 // Sr. Conteúdo

Palavra certa, indexação correta Por Bruno Rodrigues, Consultor de Informação e Comunicação Digital

Se há uma tendência paras as próximas décadas no meio digital - e não apenas para os próximos anos - é a luta por visibilidade. Mais que um desafio a ser enfrentado do que propriamente uma tendência, tornar visíveis os conteúdos das marcas é hoje, para profissionais e agências, uma obsessão. Compreensível. Estratégia essencial da primeira metade desta década, a compra de palavras-chave nos buscadores já não basta. Não à toa, produtores de conteúdo são constantemente cobrados na aplicação de técnicas para indexação de informações. Da mesma forma, ações de SEO também não atendem mais ao que as empresas esperam de suas contratadas. Ou seja, técnicas de eficiência comprovadas estão sendo utilizadas à exaustão, e ainda assim passam longe de ser suficientes. Em tal cenário, há que ir além, e é comum que em situações como essa a solução não esteja em olhar para o que há de novo, mas sim em voltar-se para o início, ou seja, a matéria-prima que possibilitou o trabalho de visibilidade das informações: a semântica. A escolha da palavra ou da expressão correta está - como deve ser - no cerne das técnicas para a indexação de informações e também nas ações de SEO. Mas a saída, mesmo, parece estar em ir mais fundo no estudo e na observação do universo semântico de públicos e conteúdos. Conhecer aspectos poucos conhecidos, como origem e relações entre as palavras,

aponta para novas e inéditas soluções. É reconfortante descobrir que a saída para uma pequena crise na Comunicação Digital possa estar, mais uma vez, nas mãos de um dos pilares da Comunicação tradicional. Quem produz conteúdo para o meio online sabe que não escrevemos para sermos lidos, mas sim para sermos vistos e encontrados. A palavra sempre esteve no centro dessa tarefa. Assim, o novo caminho a ser trilhado é apenas o aprofundamento de um trabalho que sempre foi realizado. Uma consequência natural, portanto. Ao estudar o universo de uma determinada palavra, é preciso conhecer a lógica de sua estrutura, assim como saber de que forma ela se relaciona com o que há ao redor. Nessa tarefa de imersão, existem categorias que nos ajudam a encontrar as soluções de que tanto precisamos; são definições que vêm da Arquitetura da Informação - antes mesmo do surgimento do digital - e que, até hoje, são utilizadas pela Biblioteconomia. A elas:

Termos genéricos O que são Funcionam como um guarda-chuva: eles sinalizam conteúdos diversos, mas que possuem interseções bem lógicas entre si. Há vários níveis de termos genéricos. ‘Animais’, por exemplo, seria um nível mais alto, bem amplo, o ‘primeiro nível’, aquele capaz de


48 // Sr. Conteúdo

abarcar o maior número de conteúdos possível. ‘Animais de estimação’ ou ‘Animais selvagens’ seriam, por sua vez, exemplos de ‘segundo nível’.

Como utilizá-los Por vezes, os públicos são vários e, portanto, o universo semântico não é apenas um, mas sim a junção de três ou quatro, ou então um termo associado ao conteúdo/produto/ serviço com que se deseja trabalhar a indexação jamais será o buscado, já que o universo semântico do(s) público(s) é limitado. Ou seja, esperar que o conteúdo seja achado através de uma sinalização específica será, neste caso, perda de tempo (e, muitas vezes, dinheiro).

O que evitar Termos genéricos precisam, como está em sua proposta original, abarcar um universo extenso de conteúdos. Por isso, deve-se evitar uma especificidade (granularidade) excessiva. Afinal, quanto mais específico é um termo genérico, mais ele se distancia da sua razão de ser - a abrangência - e menos ele será capaz de abarcar informações diferentes.

Termos específicos O que são É o oposto do genérico. Aqui não há preocupação do produtor de conteúdo, em seu processo de trabalho de indexação de informações, em criar termos amplos, já que existe uma possibilidade enorme de o usuário conhecer o termo específico. Neste caso, não existe a necessidade, por exemplo, de se buscar um termo genérico e de amplo conhecimento para ‘alimentos sem glúten’, pois o público-alvo compreende imediatamente o que é essa informação.

Como utilizá-los A nomeação com termos específicos é o cenário perfeito para o produtor de conteúdo. Estudando com cuidado com que grau de granularidade um conjunto de informações pode ser trabalhado, a possibilidade de se atingir em cheio o usuário é grande, afinal o objetivo do termo específico é embrenhar-se pelos espaços entre seus parentes ‘maiores’ (os termos genéricos) e chegar com precisão e rapidez aos públicos.

O que evitar É preciso ter certeza de que seu público realmente conhece o termo escolhido. Dessa forma, um trabalho para indexação com rótulos específicos só deve ser uma opção se foi feita uma pesquisa detalhada sobre o universo semântico do usuário.

Termos relacionados O que são Esta é, na verdade, uma categoria de apoio. Termos relacionados são utilizados quando o termo genérico é amplo em excesso – e por isso flácido –, e o termo específico jamais seria buscado e/ou compreendido pelos públicos. Não por isso os termos relacionados têm menos importância; é fundamental compreender que o trabalho de apoio à indexação através da semântica sempre se utilizou – lembre-se da Biblioteconomia – de ferramentas de apoio para sinalizar conteúdos, é comum apoiar-se em recursos complementares.

Como utilizá-los O foco, aqui, é cercar a informação por todos os lados. Se você deseja sinalizar uma cobertura para bolo cujo termo é algo inédito para o público-alvo (chamemos de ‘du-


49 // Sr. Conteúdo

cigrin’), devem-se listar todos os termos possíveis relacionados ao produto, desde os mais óbvios (‘cobertura’, ‘bolo’, ‘doce’) aos secundários (‘festa’, ‘aniversário’) e utilizar essa lista no trabalho de apoio à indexação. E, é claro, não deixar de utilizar o termo exato, afinal, com o tempo, ele passará a ser identificado – e buscado – pelo usuário.

O que evitar Termos que se distanciam demais do universo do termo original. Explore seu universo até o limite, mas tome cuidado para não ir além.

Sinônimos O que são Conjunto de termos que identificam um mesmíssimo conteúdo, todos de amplo conhecimento. Embora pouco se pare para pensar sobre o porquê dos sinônimos existirem – afinal, se um dos termos já é compreendido por todos, por que existir mais de um para identificá-lo? -, sua utilidade é, na prática, um recurso indispensável, já que um mesmo conteúdo será buscado através de vários termos e não apenas um. Em tempo: procurar sinônimos é uma tarefa obrigatória no trabalho de apoio à indexação.

se familiarizasse com os novos termos, mas é preciso utilizar (também) um sinônimo para que o conteúdo seja encontrado.

O que evitar Quando se escolhe sinônimos, é preciso ter certeza absoluta de que um termo é compreendido, da mesma forma, por todos os públicos. O regionalismo é um dos grandes perigos: fale ‘vire à direita e pare no sinal’ em São Paulo, uma cidade em que o termo ‘sinal’ é compreendido de outra forma e o termo utilizado é ‘farol’ (‘sinal’ é usado no Rio de Janeiro). Evite suposições, então: pesquise. O presente, e não o futuro próximo, já pede dos produtores de conteúdo o gosto por brincar com palavras e o prazer em estudá-las. Se você ainda não se envolveu o bastante com (mais) essa nova faceta do universo da informação digital, ainda está em tempo – mãos à obra!

Como utilizá-los Vamos utilizar um exemplo bem simples: imagine um público que conhece o ‘melhor amigo do homem’ apenas como ‘cão’; ele jamais ouviu falar em ‘cachorro’. De nada adiantaria, portanto, trabalhar a indexação apenas utilizando um determinado termo escolhido que, seja qual for o motivo, seria o ideal, neste caso (‘cachorro’). Aqui, utilize ambos, ‘cão’ e ‘cachorro’. Há casos comuns relacionados a tipos novos de produtos em que a marca gostaria que o público

BRUNO RODRIGUES é consultor de Informação e Comunicação Digital, autor dos livros ‘Webwriting’ [2000, 2006 e 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 exterior. bruno-rodrigues@uol.com.br


Soluções em pagamentos que se adaptam ao seu mundo! Do que você precisa?

Mundi Basics Tenha acesso ao Gateway de Pagamentos mais completo do mercado e focado na sua conversão.

Diversas funcionalidades para sua loja Retentativas Recupere as vendas não autorizadas com retentativas em múltiplas processadoras de cartão.

Checkout transparente

Mundi Up Uma plataforma completa de pagamentos com uma taxa diferenciada. Neste plano cuidamos de tudo: além do Gateway, você conta com antifraudes parceiros, conciliação e processadora de cartões.

Não perca vendas redirecionando seu cliente para páginas de pagamento externas.

Multimeios de pagamentos Seus clientes podem finalizar a compra utilizando mais de um cartão ou combinando com boleto.

Instant Buy

Mundi Flex Te ajudamos a escolher os recursos que mais se

Aumente suas vendas por impulso tolkenizando seus cartões e vendendo com 1 clique.

adaptam à sua necessidade. Combine as nossas ferramentas de acordo com o perfil da sua empresa.

Capitais e regiões metroponitanas: 3003-0460 Outras regiões: 21 3554-2802

contato@mundipagg.com www.mundipagg.com


51 // OAuth

Uma pausa, jovem, para sabermos um pouco mais sobre OAuth Por Erick Tedeschi, Secure Development Engineer

A proposta deste artigo é mostrar aos desenvolvedores alguns tópicos e dicas que normalmente não vemos nos tutoriais da Interwebs e apresentar uma forma de utilizar OAuth em uma aplicação baseada em microsserviço. O “OAuth 2.0 Authorization Framework” é comumente confundido como uma forma de autenticação, no entanto, trata­se de um Framework de Autorização/Delegação que pode ser estendido para agregar mais funcionalidades, diferentemente do seu antecessor, o “OAuth 1.0 Protocol”, que era definido como um Protocolo de Autorização. O significado da palavra “protocolo” está relacionado com “pacto” ou “acordo”, ou seja, é para ser utilizado da forma como foi definido. Já framework está relacionado com ”base”, “infraestrutura”, “esqueleto”, ou seja, algo para ser customizado/ estendido. Vejo com frequência desenvolvedores implementando “na unha” funcionalidades de Authorization Server (nome dado a um OAuth Server, ou simplesmente AS) em suas aplicações, que basicamente seriam a exposição dos endpoints da especificação core do OAuth 2: /token e /authorize. Não que isso seja errado, mas atualmente é insuficiente; e muitas vezes, alguns pontos

são esquecidos, como error codes, comportamentos específicos que a RFC sugere, controle de cache, encoding etc. Esses gaps acabam interferindo no bom funcionamento dos clients/libraries prontos de OAuth que poderão ser utilizados, o que irá acarretar no desenvolvimento de um client/ library “próprio”. Se pararmos para refletir, para implementarmos o mínimo de um Authorization Server, teríamos que seguir as especificações RFC6749 (The OAuth 2.0 Authorization Framework) e RFC6750 (Bearer Token Usage). Mas só isso não resolve os problemas de arquitetura e segurança atuais. Vejamos, então, algumas RFCs que estendem as funcionalidades do OAuth 2.0 Authorization Framework: • RFC 7009 Token Revocation: Essa RFC propõe um novo endpoint para o Authorization Server (ex.: /revocation), que possibilita a revogação de tokens que não estão mais em uso (access_tokens, refresh_tokens ou


52 // OAuth

algum outro token emitido pelo AS). Um exemplo seria se o usuário fizesse um logout na aplicação (client), mudasse parâmetros na identidade ou desinstalasse o AppMobile, o cliente pode informar ao AS que os tokens provenientes daquela autorização já não são mais necessários. • RFC 7662 Token Introspection: Essa RFC propõe um novo endpoint para o Authorization Server (ex.: /introspect), que permite ao Resource Server verificar metainformações a respeito de um determinado token. Isso é muito útil na arquitetura de microsserviços, quando um access token é propagado para os microsserviços internos. Na primeira vez em que o microsserviço recebe o token, ele pode verificar junto ao AS se o mesmo ainda é válido, quais são os escopos de autorização do token, e-mail de quem autorizou etc. • RFC 7797 (que substituiu recentemente a RFC 7519) JSON Web Token: Atualmente estamos ouvindo muito a respeito de JWTs ou JSON Web Tokens. JWTs são utilizados para proteger “claims/atestações” entre a

comunicação de duas partes (um cliente e um servidor, por exemplo) com assinatura digital e/ou criptografia. O mais interessante é que sempre tivemos a possibilidade de utilizar assinatura digital e criptografia em nossas aplicações, mas o JWT trouxe uma grande quantidade de bibliotecas que abstraem e facilitam essas tarefas. Já existem diversas implementações customizadas de JWT sendo utilizadas em controles de segurança, como autenticação, e no contexto do OAuth faz todo sentido que o AS, em vez de gerar access_tokens “opacos”, passe a fornecer JWTs, o que permite, de forma controlada, que um resource server/microserviço faça instrospection (verificação) offline ou stateless. • OpenID Connect Core (OIDC): É uma camada de identidade que funciona em cima do OAuth. Entende­ se por identidade um conjunto de características sobre uma entidade (pode ser uma pessoa, um celular, um IoT etc.); na especificação do OIDC, essas características são claims de JWT. Um AS que suporta a especificação do OpenID Connect passará a emitir id_tokens adicionalmente aos access_tokens do OAuth.

As especificações acima citadas são as mais comuns de se encontrar em um Authorization Server. Vamos ver um exemplo de aplicação com uma arquitetura baseada em microsserviços e algumas características/ requisitos que ela possui referente ao uso de OAuth.


53 // OAuth

Propagação de Tokens​: O mais comum é que o API Gateway funcione como um Resource Server para o mundo externo, já que ele recebe as requisições dos clients nos endpoints protegidos por OAuth, faz a validação do access_token e id_token recebidos, e repassa a requisição para o microsserviço interno correspondente daquela requisição. Muitas vezes, o microsserviço precisa ter mais detalhes sobre a autorização ou identidade de quem originou aquele request. Então, deve­se “propagar” os tokens para os microsserviços. OAuth Filter​: Cada microsserviço dentro da sua especialidade deve possuir um filtro/ middleware na camada REST para receber os tokens propagados pelo API Gateway ou até mesmo outro microsserviço. O filtro pode validar um token de duas formas:

• Módulo de OAuth client para NGINX: https://github.com/pingidentity/lua­r esty­ openidc​ Utilizando um Oauth server pronto, além de diminuir o tempo de desenvolvimento, teremos uma solução mantida pela comunidade e, assim que surgirem novas extensões, provavelmente elas serão incorporadas e, com isso, a aplicação se manterá atual sem muito esforço de desenvolvimento. Bom, espero que com essas dicas e informações rápidas o leitor possa entender um pouco mais sobre o que está ao redor do Framework de Autorização OAuth e consiga decidir melhor que soluções usar e/ ou implementar.

• Fazendo introspection com o AS. Uma vez verificado, pode­se manter um cache da validação até a expiração do token. • Validar JWT. Pode­se verificar a assinatura digital do JWT em todo request (stateless). Além de verificar a procedência dos tokens, deve­se validar se os escopos e/ ou claims de identidade são suficientes e se o token não está expirado. Se a validação falhar, pode­se devolver um HTTP 401. Serviços Legados​: Imagine que a sua arquitetura possua APIs legadas que utilizam auth basic. É possível protegê­las com OAuth, utilizando um proxy reverso e um filtro de oauth implementado para o WebServer utilizado. Abaixo, alguns exemplos open source:

• Módulo de OAuth client para Apache 2x: https://github.com/pingidentity/mod_auth_ openidc

ERIC TEDESCHI é analista de segurança da informação em uma das maiores empresas de mídia digital do país, tem background em desenvolvimento de sistemas PHP e desde 2002 trabalha com a linguagem erick@oerick.com


A MELHOR MANEIRA DE CONSTRUIR SOLUÇÕES DE FORMA SIMPLES, RÁPIDA E FLEXÍVEL APLICADA EM QUALQUER NEGÓCIO.

Plataforma ágil

Crie um fluxo com o recurso Drag and Drop

Sem limites! Crie quantas soluções desejar

Desenvolva aplicações em minutos

Tenha um rendimento recorrente

Comece agora mesmo store.primebuilder.com.br

Comercialize suas soluções para o Brasil inteiro

Suporte 24h por dia


Capa

//

55

Uma breve viagem ao desenvolvimento da Segurança da Informação - Passado, presente e futuro Por Alex Lattaro, para Redação iMasters


Capa // 56

No início era o verbo... A informação é o fomento do conhecimento; e quem a detém é capaz de planejar suas estratégias de modo a conseguir uma vantagem competitiva. Para ajudar você, desenvolvedor, nesse processo de planejamento, vamos fazer um breve histórico do desenvolvimento da segurança da informação, questionar a relação e a importância que a segurança tem hoje, e qual será seu papel em um futuro próximo. Para iniciarmos, vamos dar um pulo ao passado e ver como surgiu a criptografia.

Passado Dizem que a criptografia não é algo novo, mas, sim, uma técnica em constante aperfeiçoamento. Ela nasceu com o Hebreus, 600 anos antes de Cristo. Após este período, por volta de 800 anos depois de Cristo, nasceu a criptoanálise, que tinha o intuito de decifrar códigos baseados na criptografia hebraica. Depois disso, no início da I Guerra Mundial, Alexander´s Weekly escreveu um ensaio sobre métodos de criptografia que foi muito útil aos britânicos para quebrar os códigos dos alemães. Um dos exemplos históricos mais capazes de demonstrar o poder que a segurança da informação possui é a máquina Enigma, desenvolvida e patenteada por Arthur Scherbius, em 1918. Naquela época, o seu potencial ainda era totalmente desconhecido. Em 1926, a Alemanha adaptou a máquina para o uso militar, dando-a o nome de Funk Schlüssel C. Já em 1928, os alemães a aperfeiçoaram, chamando-a de Enigma G, ou “A máquina M”, que tinha o intuito de codificar e decodificar mensagens. A ideia era que se algum soldado da Alemanha fosse pego com a mensagem,

ou algum exército inimigo interceptasse o seu sinal, ela não serviria de nada, já que o inimigo não conseguiria ler a informação. A Enigma era, na época, um ícone da segurança da informação, principalmente no que se diz respeito a indecifrabilidade do código.

“Um dos exemplos históricos mais capazes de demonstrar o poder que a segurança da informação possui é a máquina Enigma” Entretanto, resumindo a história, alguns matemáticos e mestres em xadrez, como Newman e Turing, conseguiram quebrar o código. Dizem os historiadores que a Segunda Guerra Mundial terminou um ano antes do “previsto” por conta deste fato. Sendo assim, os alemães criaram a primeira máquina a utilizar a “one time pad” (cifra de chave única), e os ingleses criaram o primeiro computador digital programável, chamado de Colossus.


Capa

Presente Agora, para falar um pouco do presente, é preciso dar vários pulos no tempo. Nós, profissionais de TI, sabemos da necessidade da proteção da informação. Sempre que desenvolvemos uma aplicação, é preciso pensar em como proteger as informações que ali trafegam; e para que isso se desenvolva com sucesso, é necessário termos três itens em mente: confidencialidade, integridade e disponibilidade. Além disso, é preciso também se preocupar com a proteção do código em si; em como o usuário vai interagir com o código e quais partes devem ser transparentes, ou as demais aplicações e APIs que também podem interagir com o nosso código. Hoje, existe uma grande dificuldade em se proteger uma aplicação. Isso ocorre pela falta de conhecimento das tecnologias de segurança disponíveis, mas não só. Sempre que optamos por bloquear algo, proteger uma classe, um banco de dados ou um kernel, nós desenvolvedores engessamos a aplicação de alguma forma. E isso, normalmente, desencadeia uma diminuição de performance, queda da experiência do usuário, aumento de custos, problemas de usabilidade, dentre outros.

Possibilidades, provocações e tecnologias Existem diversas maneiras de balancear estas preocupações. Os microsserviços, por exemplo, são uma maneira de proteger

//

57

a sua aplicação e equilibrar a performance. Estranho pensar assim, já que este não é o objetivo dos microsserviços, certo?! Mas pense no princípio dos microsserviços. Eles devem ser independentes, autônomos, de baixo acoplamento e de alta coesão. Fica fácil entender como esta infraestrutura em si só já é uma estrutura baseada em segurança. Faça um paralelo. Imagine o seguinte: você faz a avaliação de riscos de segurança, identifica os requisitos de segurança e balanceia os gastos relativos aos danos causados por alguma quebra na segurança. Agora você pensa em microsserviços e separa as funcionalidades de negócio do cerne da aplicação. Você consegue enxergar que está protegendo a sua aplicação, impossibilitando que um requisito funcional quebre seu código? Quando um arquiteto opta por um sistema de microsserviços, uma escolha crucial a se fazer é o modelo de concorrência que será utilizado. Escolher este modelo e o modo como ele se conecta ao banco de dados é uma maneira inteligente de tratar os trade-offs de maneira arquitetural, levando em consideração a eficiência e a complexidade. A maneira como você decompõe seu serviço em operações paralelas e com recursos compartilhados definirá a eficiência da aplicação. Aqui, a complexidade do seu código é fundamental para que a paralelização das operações e dos recursos seja capaz de manter a segurança do seu banco de dados e a performance da sua aplicação. Assim, com essa estratégia, é possível deixar a aplicação mais rápida, visto que fica mais fácil balancear servidores, acessos e processamento. APIs também são um ótimo exemplo de como fazer sua aplicação conversar com


Capa

//

58

outras sem abrir portas desnecessárias. Com as APIs, é possível facilitar a programação de uma aplicação, expondo uma série de ferramentas necessárias, métodos de programação e protocolos. Mas o importante aqui é não deixar o código e o backend vulneráveis. Como você abriu uma porta específica para a comunicação, fica claro que ela precisa de uma defesa bem estruturada, e isso vale não apenas para a sua API, mas para todo o caminho em que os dados trafegam. E muitas empresas e developers não estão se preocupando com isso como deveriam. Ao desenvolver uma API para uso interno, tende-se a se preocupar menos com autenticações, acessos, dentre outros. Entretanto, muitas vezes acaba-se por reutilizar esta mesma API de uma maneira externa. Sendo assim, o importante é desenvolver mecanismos de segurança desde o início.

“A maneira como você decompõe seu serviço em operações paralelas e com recursos compartilhados definirá a eficiência da aplicação” Se você optar por utilizar uma API privada, por exemplo, pensando que é preciso uma segurança mais parruda, dada a sensibilidade dos dados trafegados na rede, e utilizar comunicação via HTTPS, que é o básico da segurança, já é possível se proteger contra-ataques do tipo man in the middle, por exemplo, visto que temos uma criptografia bilateral entre cliente e servidor. Porém isto ainda não é suficiente. Além disso, é preciso ter cuidado para saber se a solução de gestão de API possui algum tipo de certificação como FIP 140-2 e Common Criteria, por exemplo. Também é necessário ficar atento à proteção contra

ataques diretos e ameaças REST e SOAP. Ou seja, ao desenvolver uma API internamente, consegue-se manter o controle da segurança totalmente implementado pela infraestrutura, se assim o quiser. Uma API mal desenhada pode expor todo o cerne da nossa aplicação e permitir acessos e ações maliciosos. Temos um exemplo de uma empresa nacional de anúncio de vagas que sofreu um ataque por deixar que os dados da sua API fossem visualizados e extraídos com facilidade. Por outro lado, mesmo que sua API esteja bem desenhada, é necessário que a integração com outros sistemas ou APIs sejam previstos afim de garantir a segurança da sua aplicação. Por falar em tecnologias de segurança como HTTPS, existem muitas outras disponíveis atualmente no mercado: Token based authorization, criptografia, autorização HTTP basic, autenticação HTTP Digest, ssh, firewalls, sistemas de controle de acesso, sistemas UTM, OAuth, entre outros. O banco original, por exemplo, que está entrando fortemente no mercado das fintechs, trabalha uma de suas APIs utilizando uma solução OAuth, que permite aos desenvolvedores solicitarem autorização para acessar as informações disponíveis por outras APIs em seu nome, sem que os usuários precisem fornecer dados pessoais para darem estas permissões.

E aquela tal de criptografia dos tempos de Noé? Embora seja um conceito antigo, como visto anteriormente, a criptografia ainda trabalha fortemente no mercado. Um bom


Capa

exemplo é o processo transparente utilizado na criptografia fim a fim do WhatsApp. Agora as informações não podem ser interceptadas, lidas e nem modificadas enquanto estiverem em trânsito, é o que garante a empresa. E isto serve não apenas para mensagem de texto, mas também para vídeos e áudio. Essa tecnologia já é utilizada em serviços bancários, e agora foi adaptada ao serviço de comunicação, o que acabou popularizando o seu conhecimento. Entretanto, a criptografia tem se desenvolvido muito com o passar dos tempos. E com base nesta visão evolucionária da tecnologia, atualmente os pesquisadores já pensam em um tipo de criptografia chamada pós quânticas - um ramo da criptografia que estuda classes de algoritmos criptográficos resistentes à criptoanálise quântica. Dentro desse contexto, temos os algoritmos baseados em hash, látice, código, entre outros. O algoritmo baseado em hash é antigo e bem popular entre os desenvolvedores, entretanto são facilmente quebrados por força bruta com um custo de operação de O(n²), na qual n é o número de bits empregados pela função. Dentro deste modelo, temos dois algoritmos bem conhecidos como o algoritmo Lamport-Diffie e a árvore de Merkle. O Lamport-Diffie usa duas funções básicas, uma função não-inversível f: {0,1} n -> {0,1}n e uma função de resumo g: {0,1}* -> {0,1}n onde n é a robustez desejada. Além disso, o algoritmo também utiliza uma chave de assinatura de A de 2n² bits e uma chave de verificação B de mesmo tamanho. O problema deste tipo de criptografia é que a cada nova troca de mensagens, novas chaves precisam ser geradas e trocadas.

//

59

Outra aplicação da criptografia é o novo paradigma de banco de dados: o chamado blockchain, que é uma das plataformas mais seguras devido ao seu modelo descentralizado. Desenvolvido a princípio para ser utilizado em transações de criptomoedas, atualmente já é utilizado com outros objetivos, como visto nesta edição, no artigo do João Paulo Oliveira. Parece estranho descentralizar a informação? Pensando bem, não é. Basicamente, nenhuma atitude contra o sistema pode ser tomada sem que a maioria dos nós concorde com ela. Assim, fraudes e ataques são menos efetivos, mas isso não garante 100% da sua defesa.

Deixando o presente... Nessa breve passagem pelo presente, podemos ver que existem muitas tecnologias, novos paradigmas, novas maneiras de pensar sobre os conceitos antigos. Mas, principalmente, conseguimos identificar a evolução que tivemos. Antes, existia uma estrutura monolítica, que se desenvolveu para microsserviços; as APIs e APIs gateways que fornecem comunicação de modo a proteger a sua aplicação e também o desenvolvimento e a atualização da criptografia e a descentralização da informação. Antigamente, havia apenas alguns firewalls e criptografias fracas, mas o desenvolvimento da ciência da computação e da web, permitiu aos desenvolvedores brincar com as tecnologias e os conceitos, criando novas formas de enxergar a segurança e suas inúmeras aplicações.


Capa

//

60

Futuro Atualmente, muito se fala em smart cities, IoT e inteligência artificial, que é onde o conceito da segurança mais tem tirado o sono dos especialistas. E este nem é um cenário tão futurístico assim... O Gartner prevê que até 2020, mais de 50% dos processos de negócios e sistemas incorporem algum elemento de IoT. A gama de dispositivos pendurados na rede e a quantidade de informações sensíveis que irão trafegar na Internet será astronômica. E isso não é exagero, algumas pessoas falam até que não se usará mais terabytes para quantificar o tamanho desses dados, mas, sim, uma “nova medida”, baseada na distância entre a Terra e a Lua. Mas sejamos um pouco práticos: você acredita que hoje a sua empresa gasta muito tempo para desenvolver um projeto? Ou você trabalha em uma empresa com metodologia Agile que emprega a entrega contínua e não precisa se preocupar com isso? Bom, acredito que independente da sua metodologia, ou modelo de negócio, isso irá mudar. O Gartner aposta que em 2018, 75% dos projetos deverão demorar o dobro do tempo para serem implementados. Segundo algumas previsões da empresa, para que os deadlines sejam cumpridos, alguns projetos podem deixar a desejar em segurança, performance ou em processos de integração legados. E o que isso acarreta? Que você terá que desenvolver todo o seu projeto do zero se estiver com pressa e não se preocupar com a segurança da sua aplicação. Já que estamos abordando um pouco do tema de IoT para falar de segurança da informação no futuro, vamos pensar no básico. Para que as aplicações e sistemas funcionem neste cenário, são necessários

dados que alimentem as aplicações, como é preciso hoje em dia. Neste futuro, os dados virão de sensores que estarão plugados everywhere. Na sua casa, no seu trabalho, no trânsito e até mesmo em você. Aliás, principalmente em você. E o que esses sensores tem a ver com segurança? O Gartner também prevê que em 2020 haverá um mercado negro de sensores falsificados e dados de vídeos que ultrapassarão a marca de 5 bilhões de dólares. Isso te leva a pensar nas implicações de segurança e privacidade que a exposição desses dados causará. Imagine se estes dados sensíveis, ou não, se perderem. Imagina se eles não estiverem bem protegidos e forem expostos. Ted Friedman, vice-presidente da Gartner em entrevista para um canal de tecnologia nacional avisa: “Um mercado negro com sensores e dados de vídeo falsos ou corruptos significará que a informação pode ser comprometida ou substituída por informação deliberadamente manipulada e imprecisa. Este cenário vai impulsionar o crescimento de produtos e serviços de privacidade, resultando numa discussão pública e longa sobre o futuro da privacidade,


Capa

sobre os meios para proteger a privacidade individual e sobre o papel da tecnologia e do governo na proteção da mesma”. Você consegue enxergar quantos pontos da sociedade a falta de segurança da informação afetará em um futuro próximo? Pessoas, governos, indústrias, empresas, leis, comércios, relacionamentos e por aí vai...

“Segundo algumas previsões da empresa, para que os deadlines sejam cumpridos, alguns projetos podem deixar a desejar em segurança, performance ou em processos de integração legados” A falta de planejamento fará com que o problema se torne uma bola de neve. Haverá gastos excessivos, trabalhos repetitivos, demora na entrega dos projetos, exposição de dados sensíveis, pessoais ou empresariais, interrupção de serviços na área industrial e em áreas estratégicas, além de problemas com cyber segurança, invasão e cyber espionagem.

Vamos nos planejar? Então, você pode perceber que é preciso planejar e discutir antes de colocar a mão na massa. Existe um projeto chamado “Securing Smart Cities” que visa atender os desafios de cyber segurança por meio da colaboração e do compartilhamento de informações. Além disso, existem inúmeros fóruns e comunidades dedicadas

//

61

exclusivamente a área de segurança. Não é preciso pensar apenas em IoT ou smart cities, podemos pensar a segurança hoje, de modo a torná-la cada vez melhor e escalável. E tornar a segurança uma realidade do desenvolvimento, cabe a nós, desenvolvedores. Entretanto, é necessário termos a ciência do negócio em que estamos inseridos para que tenhamos uma maior empatia com todo o fluxo da operação. Nós do iMasters, acreditamos que o profissional de tecnologia tem de estar cada vez mais próximo das camadas superiores das empresas, e que essa hierarquia deva ser cada vez mais horizontal. Isso auxilia as empresas a tomarem decisões mais assertivas quanto ao rumo dos negócios. Trazer estes profissionais para próximo, promover discussões, hackathons, criar comunidades, fomentar o conhecimento e visar a melhoria continua, fará com que a comunidade se desenvolva como um todo, gere mais conhecimento e desenvolva uma cultura colaborativa cada vez mais forte para que estejamos preparados para os desafios do futuro. Que a força esteja com vocês, jovens padawans!


CLOUD HOSTING Alta Performance Armazenamento em Cache Disponibilidade

cPainel Incluso Disco e Transf. Ilimitados Escalabilidade

25%

DE DESCONTO

vendas@resellerclub.com

br.resellerclub.com

+55 (11) 3197 4943


63 // Escalabilidade

Escalabilidade de aplicações web Por Danniel H. Ribeiro, Analista de sistemas da Gerencianet

Desenvolver um sistema web preparado para o futuro é uma tarefa árdua. Na maioria dos casos, a escalabilidade não é pensada no início, e só percebemos sua importância quando o projeto está em produção e com milhares de usuários e acessos simultâneos. Para ilustrar, vamos imaginar o seguinte cenário: Você tem uma ideia inovadora e deseja colocá-la em prática como um aplicativo web. Para isso, escolhe a linguagem de programação com a qual já possui contato há muito tempo, pois não quer perder tempo pesquisando quais são as ferramentas disponíveis no mercado. Feito isso, o desenvolvimento é rápido. Esse projeto possui controle de acesso de usuários, e isso é feito na forma padrão da maioria das linguagens: cookie de sessão ar-

mazenado em disco. Além disso, o sistema dispara e-mails para os usuários e possui API RESTful para acessos externos. Em algum momento da vida útil do sistema, ele começa a crescer. Mais e mais usuários começam a perceber que sua ideia inovadora atende às suas necessidades e começam a utilizá-la com frequência. Porém, com mais usuários, vem também mais acesso, leitura, escrita e consumo de recursos da máquina. Problemas como lentidão e timeouts começam a irritar os usuários. Nesse ponto, você se vê obrigado a gastar mais dinheiro com o servidor onde o código está hospedado na expectativa de que os problemas acabem, mas sem sucesso. A única alternativa que resta, então, é repensar o projeto e começá-lo do zero.


64 // Escalabilidade

“Desenvolver um sistema web preparado para o futuro é uma tarefa árdua. Na maioria dos casos, a escalabilidade não é pensada no início, e só percebemos sua importância quando o projeto está em produção” Ao projetar um sistema, temos que ter em mente algumas perguntas importantes:

O projeto é a base da aplicação

• Meu sistema pode ser distribuído em várias máquinas e continuar funcionando da mesma forma?

Esta é a primeira e mais difícil etapa de todo sistema: o projeto. O sistema acima passou muito rápido desta etapa e não foi capaz de prever os problemas que viria a sofrer. É nesta etapa que temos que olhar para as perguntas levantadas anteriormente (e muitas outras) e pensar em como fazer tudo se tornar realidade. Para o projeto ser um sucesso, devemos gastar todo tempo necessário nesta etapa para não termos surpresas no futuro.

Vamos enumerar alguns dos problemas do aplicativo acima:

Escolher qual tecnologia usar na aplicação também faz parte desta etapa. Essa esco-

• Quais são as expectativas de acesso e armazenamento para o futuro? • O sistema escala de forma satisfatória? Ou seja, se eu expandir os recursos físicos da máquina, ele será mais rápido?


65 // Escalabilidade

lha não deve se resumir apenas a selecionar aquela com a qual você se sente mais confortável em utilizar. A pesquisa e o aprendizado também devem fazer parte do planejamento do projeto. Toda tecnologia tem prós e contras, então devemos olhar com cautela para cada uma e decidir qual executará melhor a tarefa dada.

Armazenamento de informações O armazenamento em disco da sessão é comum, porém a tarefa de deixar o sistema escalável fica mais difícil. Com a sessão gravada no servidor, é necessário que cada requisição do mesmo usuário seja redirecionada sempre para o mesmo servidor físico. Uma maneira fácil de evitar esse trabalho é armazená-la em um banco de dados. Um recurso muito utilizado para esse fim é o Redis.

Dividir e conquistar Este é um dos conceitos mais antigos da sociedade. Antigamente, era utilizado apenas na política e na sociologia, mas também pode ser aplicado na computação.

Além da divisão por responsabilidades, podemos dividir a carga que cada tarefa executa. Isso consiste em ter múltiplas instâncias de cada uma, tanto no nível da aplicação quanto no de servidores. Tecnologias recentes, como NodeJS em conjunto com PM2, permitem iniciar várias instâncias de uma aplicação no mesmo servidor sem ter que realizar muitas configurações. Além disso, se adicionarmos um web server, como o Nginx, podemos balancear a carga entre vários servidores, o que permite ter uma aplicação que divide o trabalho e escale muito bem com mais recursos. Desenvolver sistemas escaláveis não é fácil, mas com bom planejamento conseguimos encontrar boas soluções e evitar dores de cabeça. Devemos ter em mente que os sistemas crescem e, quando isso acontece, temos que estar preparados para lidar com a situação sem precisar gastar rios de dinheiro.

O aplicativo exemplificado anteriormente possui diversas tarefas: • Tarefas básicas da própria aplicação

DANNIEL H. RIBEIRO

• Controle de usuários • Envio de e-mails • Serviços na forma de API Cada uma dessas tarefas pode existir sem a outra. Sendo assim, podemos separá-las fisicamente, criando projetos diferentes em servidores distintos. Dividir as responsabilidades torna o sistema mais rápido, mais escalável e de fácil manutenção.

é graduado em Ciência da Computação pela Universidade Federal de Ouro Preto (Ufop). Tem experiência na área de Ciência da Computação com ênfase em Redes, Computação de Alto Desempenho com ênfase em Computação Paralela/Distribuída e Engenharia de Software. Trabalha na Gerencianet desde 2012, onde atua na área de desenvolvimento de aplicações web como analista de sistemas. Já trabalhou em projetos em PHP, Ruby, Python e NodeJS. Atualmente, trabalha com foco em JavaScript aplicado a Frontend e Backend.

danniel@gerencianet.com.br



67 // Blockchains

Blockchains: considerações sobre segurança em ambientes descentralizados Por João Paulo Oliveira, sócio da foxbit

No último ano, Blockchain, a tecnologia por trás da moeda digital Bitcoin, deixou de ser um conceito associado apenas à moeda digital e sagrou-se como o principal novo termo em inovação em tecnologia bancária. Com isso, virou a mais a nova buzzword no universo das finanças e meios de pagamentos. No Brasil, o Itaú e o Bradesco, os dois maiores bancos privados do País, já anunciaram projetos experimentais com essa tecnologia e a entrada em um consórcio junto com outros 50 bancos que estão trabalhando em aplicações conjuntas da tecnologia do Blockchain. As promessas potenciais da tecnologia são muitas: diminuir custos de transação e de backoffice, aumentar segurança e transparências em processos operacionais, facilitar e automatizar auditorias, reduzir ou mesmo eliminar fraudes em certos contextos etc.

Os casos de usos são tão diversos que a tecnologia é comparada com a Internet no estágio inicial, dado o potencial de impacto que pode ter nas organizações. Mas o que são Blockchains? Blockchains são um novo paradigma de banco de dados descentralizados, armazenados em uma rede de computadores. Diferentemente de um banco de dados usual, em um Blockchain, cada nó da rede é responsável por armazenar os dados, garantindo a consistência e a integridade dos dados. Periodicamente, esses nós da rede entram em consenso uns com os outros e garantem que todas as cópias estão iguais umas às outras. Esse novo modelo de banco de dados elimina a necessidade de um intermediário central confiável entre as partes de transação, seja uma transferência de


68 // Blockchains

dinheiro, de um bem físico ou mesmo uma transação para se identificar e autenticar em um serviço. No fim das contas, Blockchain resolve o problema de confiança entre duas partes - questão essencial em qualquer tipo de operação comercial. Exemplificando, se a empresa A quer fazer uma transação financeira com a empresa B no modelo de Blockchain, ambas ficam com uma cópia local da transação que é replicada em todas as empresas que estiverem conectadas à rede; as cópias do banco de dados entram em ‘consenso’ entre si e resolvem potenciais conflitos de inconsistência de informações. Como todas as transações são assinadas digitalmente pelas partes, elas não são repudiáveis pela parte criadora da transação. Como todas as transações são replicadas em um ambiente descentralizado, elas são inalteráveis e ficam registradas enquanto aquele Blockchain existir. O Blockchain é a essência do funcionamento da moeda digital Bitcoin, e ainda (e talvez sempre seja) é o maior caso de uso dessa tecnologia. A moeda digital é limitada a 21 milhões unidades, e o cumprimento desse limite é garantido pelo Blockchain (ou seja, cada computador conectado à rede reforça o cumprimento das regras). Atualmente, aproximadamente 6.000 nós (os computadores que mantêm uma cópia local desse Blockchain) garantem a segurança e o cumprimento das regras da moeda. Qualquer tentativa de fraudar o sistema (hackear a rede para criar novos Bitcoins, por exemplo) só seria feita mediante o consenso da maioria dos nós da rede, e uma eventual tentativa individual de manipular o banco de dados não surtiria efeito. O efeito prático da tecnologia é fascinante: Bitcoin é a primeira moeda que não precisa de uma autoridade central para controlar a emissão e as transações, onde todo controle e ‘regulação’ é garantido por cada indivíduo participante da

rede. Com o aumento da demanda por Bitcoin, e a garantia de que os Bitcoins são limitados, existe uma expectativa do mercado de que o preço de cada unidade da moeda aumente. No Brasil, em 6 de junho de 2015, 1 Bitcoin era cotado a R$ 850 na Foxbit, a maior corretora de Bitcoins do Brasil. Em 6 de junho de 2016, cada Bitcoin era cotado por R$ 2.550. Uma alta de 200%! Para saber o preço do Bitcoin no momento da leitura do artigo, basta acessar o site foxbit.com.br e consultar o valor. Apesar de Bitcoin e as moedas digitais serem o maior o caso de uso do Blockchain, as grandes organizações, como os bancos globais, estão mais interessadas em outros usos de Blockchain, sem envolver Bitcoin, como em casos de usos derivados de smart contracts. Smart contracts são regras de negócios armazenadas em um Blockchain com execução garantida sem a necessidade de intervenção ou de confiança em nenhum intermediário. Smart contracts potencialmente eliminam custos de backoffices e riscos operacionais. Exemplos de uso de smart contracts incluem derivativos e outros instrumentos financeiros. É possível ‘programar’ um contrato financeiro entre duas partes que seja automaticamente executado por


69 // Blockchains

um Blockchain. O Blockchain da plataforma Ethereum é o que tem se tornado referência para esse tipo de caso de uso. Ele não possui qualquer relação com o Blockchain do Bitcoin, visto que os computadores que processam transações em Bitcoins são diferentes dos que processam na rede Ethereum. O único elemento de relação entre esses Blockchains é o valor de suas moedas, já que ether é geralmente cotado em Bitcoin e negociado em mercado de ativos digitais, como o Poloniex, por Bitcoins. Assim, o preço da moeda digital do Blockchain do Ethereum (ether) e do Blockchain do Bitcoin (Bitcoin) frequentemente apresentam correlação, visto que são negociados um pelo outro.

“Blockchains são um novo paradigma de banco de dados descentralizados, armazenados em uma rede de computadores” Diferentemente do Bitcoin, que se propõe a ser um Blockchain focado em transações financeiras, o Ethereum se propõe a ser o ‘computador do mundo’, sendo um Blokchain turing-completo que pode rodar qualquer software de forma descentralizada, sem ser controlado por nenhuma autoridade central e isento de ponto único de falha. Dessa forma, um software escrito em Ethereum poderia rodar em seu Blockchain e nunca ser desligado! Ou seja, estar rodando em milhares de computadores ao mesmo tempo sem ter um servidor central. Definitivamente, uma evolução no paradigma de cloud computing. Esse conceito foi levado ainda mais ao extremo com o projeto do DAOHUB. O projeto tinha a intenção de criar um fundo de investimento apenas para DAOS (Organi-

zações autônomas descentralizadas), uma ‘simulação’ de uma empresa baseada em IoT (Internet of Things) que usa Blockchains para segurança e gestão de pagamentos. O principal projeto que exemplifica o conceito de um DAO é o slock.it, uma fechadura inteligente que se conecta ao Blockchain e pode gerenciar os próprios pagamentos, gerando dividendos aos seus financiadores. No DAOHUB, qualquer projeto que precisasse de recursos, e se enquadrasse como uma organização autônoma descentralizada, poderia obter recursos do fundo, como o slock.it o fez. Assim, os criadores do DAOHUB lançaram um crowdfunding para captar recursos para o fundo. Todo o capital foi angariado na criptomoeda ether. No modelo proposto, cada investidor ganharia um token proporcionalmente ao capital investido. Esse token também iria receber os dividendos dos acionistas do fundo, quando os projetos financiados dessem algum lucro, além de permitirem aos investidores votarem em quais projetos receberiam valores do fundo. Ou seja, a propriedade dos tokens é a garantia de fazer parte como ‘sócio’ do DAOHUB. Com essa proposta, o DAOHUB levantou US$ 160 milhões em um mês de captação, tornando-se o maior crowdfunding da história! E o mais incrível é que esse dinheiro não estava sob gestão de nenhuma empresa, nenhuma jurisdição ou nenhuma regulação, e sim estava sendo todo gerido via um Blockchain em um modelo de smart contracts, conforme definido pelo código-fonte que emitia os tokens. Como em qualquer em Blockchain, esse código-fonte é executado em computadores distribuídos ao redor do mundo, sem um ponto central que possa ser manipulado. Toda empolgação com o potencial do projeto acabou poucas semanas após a capta-


70 // Blockchains

ção dos recursos. Uma brecha no código-fonte do projeto foi encontrada e explorada por um cracker, que conseguiu ‘drenar’ o equivalente a US$ 60 milhões do fundo. O preço do Token DAO afundou, caindo cerca de 50% em um dia. Possivelmente, essa foi uma das maiores falhas de segurança da história recente da computação, causando um dano de grandes proporções a dezenas de milhares de pessoas e pondo em evidência os riscos da indústria nascente do Blockchain. Além do DAOHUB, outros projetos desenvolvidos em Ethereum tiveram falhas exploradas e dinheiro roubado. Parte dessas falhas críticas em projetos utilizando a tecnologia de smart contracts se deve a duas razões:

nharia de Software em smart contracts Ainda existem ferramentas adequadas para o desenvolvimento e testes de smart contracts - boas IDEs (Visual Studio suporta ainda de forma limitada) e linguagens de programação adequadas para esse tipo de prática, ou ainda ferramentas para execução simbólica e verificação formal. Ou mesmo boas práticas mais simples, como desenvolvimento em camada. Essa falta de boa práticas e infraestrutura inevitavelmente leva a falhas e erros, como na crise de software (http://ow.ly/HdY5301QWNs) da década de 70.

• Complexidade da plataforma Diferentemente do Blockchain do Bitcoin, o Ethereum é turing completo, ou seja, roda qualquer algoritmo possível de ser escrito. O Bitcoin não possui essa capacidade justamente por preocupação de segurança. Ao mesmo tempo em que sendo turing completo traz um poder grande aos desenvolvedores, essa capacidade traz complexidades proporcionais. Naturalmente, softwares complexos apresentam diversos potenciais pontos de vulnerabilidade e risco.

• Ausência de práticas de Enge-

JOÃO PAULO OLIVEIRA João Paulo Oliveira é empreendedor, mestre e graduado em ciências da computação pela universidade Federal de Pernambuco. Especialista em bitcoins, blockchain e pesquisador sobre inovação e descentralização. Sócio da foxbit, a maior empresa bitcoin da América Latina.

joao.paulo@foxbit.com.br



Drops do mercado

72

Elasticsearch revolucionou o Portal da MundiPagg Dashboards e analytics necessitam cada vez mais de velocidade na busca e processamento dos dados, além de uma eficiente escalabilidade da operação. Para isso, a MundiPagg buscou no mercado uma das principais novidades dos últimos meses para tornar suas ferramentas mais poderosas. O Elasticsearch é um motor de busca sofisticado que oferece recursos robustos, permitindo que nosso Portal faça pesquisas mais rápidas e completas, aproveitando todos os campos e condições, possibilitando fazer múltiplas combinações. Com ele conseguimos trabalhar com um grande volume e melhor indexação dos dados e utilizar a ferramenta para análise de logs, deixando tudo mais performático, estável e escalável de maneira prática. Somado a isso, essa é uma ferramenta Open Source e funciona 100% como uma API RESTFul. Sua comunidade é mundial e ativa, evoluindo o software constantemente. Conheça o Portal da Mundi e experimente navegar rapidamente dentre centenas de transações e ver na prática seus benefícios.

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.

Movimento DevOps vem ganhando cada vez mais visibilidade no mundo corporativo O DevOps busca continuamente novas maneiras de quebrar silos, eliminar gargalos e ineficiências – mantendo um elevado padrão de qualidade e confiabilidade. O movimento vem promovendo a integração e colaboração entre as áreas de desenvolvimento, operação e negócio, dando origem à organizações de alto desempenho que estão alcançando o aumento de 2x na taxa de sucesso ao se fazer mudanças, redução de 12x no tempo médio de reparo, aumento de 30x na frequência de implantações, além de tornar 8000x mais rápido a liberação de novas funcionalidades em produção. O novo treinamento da Adaptoworks, “The DevOps Cookbook”, tem como objetivo ajudar empresas e Executivos de TI a entenderem como as práticas e culturas utilizadas pelo movimento estão sendo usadas para acelerar a inovação e crescimento nas principais empresas, aprender os princípios e práticas que estão por trás de empresas de alto desempenho.

Site Blindado agora conta com selo de segurança mobile A Site Blindado ouviu seus clientes e criou o Selo Flutuante mobile: uma nova versão do selo tradicional, porém focada em UX e muito mais adaptada aos dispositivos móveis - o que faz com que a navegação não seja afetada pelo uso do selo. Com ele, usuários podem identificar sites que sejam blindados durante todo o processo de navegação, uma vez que o selo acompanha o user em diferentes páginas, ficando posicionado no rodapé da tela nos smartphones. Não existe um script exclusivo para esta aplicação, de forma que os clientes que já utilizam o Selo Flutuante serão convidados a habilitá-la. No entanto, usuários da versão estática do selo deverão habilitar antes o Selo Flutuante no portal para poder acessar este recurso. O selo Site Blindado é uma forma de certificar que o website passou por rigorosos testes de vulnerabilidade, entre outras análises que envolvem toda a suíte de serviços de blindagem da empresa.


73 // Por dentro do W3C

Legendas na Web – além das fontes brancas Por Reinaldo Ferraz, Especialista em Desenvolvimento Web do W3C Brasil

Adicionar legendas a um vídeo na Web traz diversos benefícios para o usuário. Além de questões de acessibilidade, especialmente para pessoas surdas ou de baixa audição, o uso de legendas na Web possibilita que você compreenda um vídeo mesmo quando não tenha à disposição um fone de ouvido ou caixas de som. Quantas vezes você não habilitou o áudio de um vídeo que passa no YouTube ou no seu feed do Facebook porque não está em um lugar apropriado? Se o vídeo tem legendas, sua experiência em assistir sem áudio acaba não sendo prejudicada.

io/webvtt/), um formato em texto simples chamado pelo elemento <track> dentro da tag de <video>. O Jaydson Gomes da BrazilJS escreveu um belo artigo sobre como implementar legendas usando WebVTT no Blog da BrazilJS (https://braziljs.org/blog/ legenda-em-videos-html5/). O uso das legendas em WebVTT (que são claramente derivadas dos formatos SRT, muito comuns para legenda de filmes baixados da Internet) possibilita algumas manipulações, como o uso de elementos para deixar o texto em negrito<b>, itálico <i> e sublinhado<u>.

A tarefa de adicionar legendas a um vídeo em HTML5 necessita de pelo menos três etapas: transformar o áudio em texto, minutar a legenda e implementá-la no vídeo.

00:00:00.000 --> 00:00:05.000 line:0%

As duas primeiras etapas são relativamente fáceis. Podem ser feitas de forma manual, transcrevendo ou usando ferramentas para transformar o áudio em texto e fazer a minutagem de forma automática. Por isso quero tomar mais espaço deste artigo falando da implementação das legendas em HTML5 e como customizá-las um pouco.

Além disso, é possível configurar a posição de cada bloco da legenda na tela utilizando o parâmetro line logo depois da minutagem. Valor 100% significa que o texto ficará no rodapé, e 0% leva o texto ao topo da página.

Atualmente, a forma mais simples e com maior compatibilidade nos navegadores é o uso do formato WebVTT (https://w3c.github.

Olá <i>pessoal</i>, eu <u>sou</u> o <b>Reinaldo Ferraz do W3C Brasil </b>


74 // Por dentro do W3C

Na página da documentação do W3C, você encontra outros recursos e exemplos para manipular a posição das legendas no vídeo. Podemos ainda fazer algumas customizações com CSS. Alguns navegadores dão suporte para customização dos textos dentro dos arquivos .vtt utilizando os pseudoelementos ::cue, ::cue() e ::cue-region. video::cue{ color: pink; } Aplicando esse CSS na página, o navegador vai mudar a cor do texto dentro da legenda de branco (definido por padrão) para rosa. Se quiser mudar apenas uma parte do texto, utilize ::cue(b), por exemplo, para mudar a cor de todos os textos envoltos no elemento <b>.

“A tarefa de adicionar legendas a um vídeo em HTML5 necessita de pelo menos três etapas: transformar o áudio em texto, minutar a legenda e implementá-la no vídeo” Existe ainda uma documentação para legendas na Web, que é o TTML (Timed Text Markup Language - https://www.w3.org/TR/ ttaf1-dfxp/). Essa especificação (que tem status de W3C Reccomendation desde setembro de 2013) define um formato de legenda baseado em XML com muito mais poder de manipulação. Além de alterar a formatação visual, é possível fazer marcação semântica dentro de cada linha da legenda. Pode ser um pouco mais complicado, mas isso coloca muito mais significado em um texto que faz parte importante de um vídeo na Web.

Apesar de a implementação nos navegadores ser baixa (mas que pode ser contornada com bibliotecas e frameworks como o http:// popcornjs.org/), o padrão TTML está sendo amplamente discutido e implementado por diversos setores envolvidos com transmissão broadcast, dentre eles a EBU (European Broadcast Union) e a ARIB (Association of Radio Industries and Businesses). Essa visão favorável do uso de TTML no mercado de transmissão de conteúdo online resultou em um Prêmio Emmy para o W3C, reconhecendo seu trabalho na padronização de legendas para conteúdo audiovisual (http://www. w3c.br/Noticias/W3CRecebePremioEmmy). Em uma época em que grande parte do conteúdo que circula pela rede está em formato de vídeo, é fundamental garantir que qualquer pessoa que não esteja apta a ouvir um áudio, seja por deficiência auditiva ou por falta de recursos técnicos, possa compreender um vídeo na Web. De preferência fazendo isso utilizando legendas de padrões abertos.

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


A PLATAFORMA OPENSTACK DO UOL HOST É TÃO INOVADORA QUE FEZ O REAL VALER MAIS A PENA QUE O DÓLAR. Pagamento em reais Sistema pré-pago com recarga automática Suporte técnico 24 horas em português

UOL HOST é pioneiro na implantação de nuvem pública em Openstack no Brasil. SAIBA MAIS EM:

UOLHOST.COM.BR/OPENSTACK OU LIGUE:

4003 5973


76 // Design

Como criar melhores produtos por meio do design centrado no usuário Por Thiago Vian, designer de produto da iugu

Você sabe o que é experiência do usuário? É qualquer interação entre usuário e produto, através de uma tela ou não. Buscar um produto, cancelar compra, calcular frete, tudo isso é UX (user experience); e ela ocorre sempre, não necessariamente de forma intencional. A boa UX nasce do processo de entendimento das necessidades dos potenciais usuários, agregado ao valor que isso dará ao negócio.

Defina as personas, que são pessoas fictícias criadas para ajudar a entender contextos sociais e comportamentos dentro do público-alvo. Os cenários também devem descrever as histórias de acordo com a personas. Eles são fluxos primários e secundários que podem ocorrer em seu produto de acordo com o contexto.

Uma das metodologias utilizadas para alcançá-la é o design centrado no usuário, que, como o design thinking, é uma forma de criar produtos melhores. Assim como no Scrum, o design centrado no usuário (UCD, em inglês) ocorre em microinterações e pode ser adaptado a diversos ambientes.

Cheque se a hipótese é válida e verdadeira. Converse com pessoas que você acredita ser seu público. Faça o que os usuários precisam, e não o que você acha que precisam.

UCD é uma prática de engenharia ágil, na qual a entrega do produto ao seu usuário precisa acontecer de forma aprimorada e contínua. É composta por cinco etapas:

1. Entender Forme uma hipótese sobre o tipo de pessoa que está procurando, dependendo do contexto do usuário e do tipo do produto. Para definir corretamente o tipo de pessoa, analise as histórias de usuários que descrevem cada ação que um usuário poderia executar no produto.

2. Observação

Crie um grupo focal, uma discussão entre um grupo de pessoas sobre tópicos definidos ou sobre seu produto. Realize pesquisas quantitativas, uma forma fácil e barata de analisar a satisfação do usuário ao usar o produto. Além disso, você pode utilizar o card sorting: distribua cartões com tópicos ou funcionalidades para os usuários e peça para os organizarem por importância, categoria ou similaridade, de forma que faça sentido para eles.

3. Idealizar Faça um brainstorm sem quaisquer julgamentos ou restrições, que pode servir para


77 // Design

gerar funcionalidades, fluxos ou conceitos de design. Crie também um fluxo de usuário, perspectiva do produto que mostra organização e fluxos existentes, com o intuito de melhorá-los ou redesenhá-los. Os moodboards também podem ser muito úteis nesta etapa, pois reúnem uma coleção de imagens, feita de forma colaborativa, que serve de referência para a criação do seu produto. Proponha mais de uma solução e eleja a melhor delas.

4. Prototipar Protótipo é uma simulação do produto final que permite aos usuários conseguirem interagir com o produto da maneira mais fiel à idealizada. Isso significa que é possível testar um produto mesmo com a interface inacabada, ou até mesmo em wireframes monocromáticos, contanto que a experiência se aproxime do resultado final. Os wireframes são os guias visuais que representam a estrutura e a arquitetura dos elementos do produto e ajudam a discutir ideias com os usuários. Os sketches são a forma mais simples de desenhar uma nova interface. Usando apenas papel e caneta, você desenha um rascunho da interface, ideal para testar ideias com seus colegas de trabalho e clientes.

5. Testar Teste o protótipo com usuários - todos ou uma parcela deles. Realize testes A/B, que os segmentam em grupos que recebem versões diferentes do produto. Assim, é possível definir a versão vencedora e melhorá-la. Utilize o eyetracking, tecnologia que grava os movimentos dos olhos do usuário pela

interface e indica o fluxo de visualização de conteúdo e áreas de interesse. “Não se esqueça de realizar o teste de usabilidade, no qual um grupo de pessoas é designado a executar tarefas enquanto é observado por alguém, que ouve e toma notas a fim de identificar problemas. Observe o comportamento dos usuários, converse, receba feedbacks e volte para o primeiro passo.

THIAGO VIAN é empreendedor iniciante, marceneiro amador e bebedor de café profissional. Possui mais de 10 anos de experiência em design de interface do usuário e desenvolvimento front-end focando em user experience. Com passagens pela Locaweb, Boo-box e Grubster, hoje está na iugu.


Soluções e-Commerce para Agências e Desenvolvedores

Otimize os seus

PROJETOS!

Crie a experiência

PERFEITA!

Instale a API em

SEGUNDOS!

Por que API e-Commerce? Porque velocidade

Rápido e fácil de

CRIAR!

É TUDO!

1

// EXECUTE ESTE SCRIPT NO CONSOLE DO SEU NAVEGADOR.

2

(function() {

3

document.head.innerHTML = ''; var script = document.createElement('script'); script.type =

4

'text/javascript'; script.async = true; script.src = "https://s3-sa-east-1.amazonaws.com/yebodemo/demo.js"; 5 6

document.head.appendChild(script); })();

Se quiser só copiar e colar, os scripts estão no link: yebo.com.br/demo/listagem.js Seja um Yebo Partner! Você desenvolvedor ou agência não paga nada para usar e seu cliente só paga por conversão. www.yebo.com.br


79 // Código Livre

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

Electron

N1 Email Client

O Electron é uma plataforma criada pelo GitHub para servir de “base” para a IDE de código aberto desenvolvida pela empresa, a Atom. Originalmente chamada de Atom Shell, ela mudou de nome e foi disponibilizada sob a licença MIT para qualquer um que deseje fazer uma aplicação desktop com HTML, CSS e JavaScript. Todas as aplicações dessa edição fazem uso do Electron.

Se você sempre gostou da interface gráfica do Mail, o aplicativo de e-mail padrão do Mac OS, e desejou poder utilizá-lo em outros sistemas operacionais, vai adorar o N1. Ao contrário do Mail, ele está disponível também para Windows e Linux, além do Mac OS. Para poder sincronizá-lo com os diversos protocolos de e-mail, é preciso acessar, via API, o Nylas Sync Engine, uma aplicação open source escrita em Python pelos mesmos autores do N1.

http://electron.atom.io

Rodeo

O Rodeo é uma IDE voltada especificamente para Data Science com suporte nativo para Python e que inclui funcionalidades como autocomplete, syntax highlight e IPython nativamente. Além disso, é possível ter acesso fácil a arquivos, plotagens e outputs de dados que aparecem diretamente no aplicativo por meio de abas e consoles integrados à ferramenta. O Rodeo está disponível sob a licença GNU Affero.

https://svg-edit.5apps.com

Rocket Chat Você provavelmente já deve ter ouvido falar ou mesmo utilizado o Slack, a plataforma de chat que invadiu de assalto o mundo da Internet. O Rocket Chat é um substituto open source do Slack, cujo cliente desktop é feito com o Electron, assim como o próprio cliente desktop do Slack. https://rocket.chat

https://github.com/yhat/rodeo

Kitematic Trata-se de uma interface de usuário para o Docker, de forma que você possa ter total controle de seus containers por meio de uma interface gráfica simples e intuitiva. O Kitematic oferece ainda funções exclusivas como mapeamento automático de portas e, apesar de estar sob a licença Apache 2.0, está disponível no momento apenas para Mac e Windows.

É um pseudo-programador, metido a jornalista, com alma de artista e evangelista na Locaweb.

https://kitematic.com

kemel.zaidan@locaweb.com.br | @kemelzaidan

KEMEL ZAIDAN


80

Drops do mercado

Embratel anuncia Cloud Server nacional de alto desempenho Pensando em dar mais flexibilidade e velocidade as aplicações da sua empresa, a Embratel passou a oferecer serviços em Nuvem. O Cloud Server conta com discos virtuais de alta capacidade (Virtual-SAN com tiering SSD), redundância nativa e altíssima velocidade de 40Gbps em rede dedicada, tendo suas operações 100% nacionais (Data Center Tier-III). Somado ao alto desempenho, você economiza e garante elasticidade de acordo com sua demanda. A flexibilidade do Cloud Server Embratel permite que você customize seu servidor em períodos de altos picos de processamento e o reduza em épocas de baixa operação, de acordo com a evolução de seu negócio. Os diferencias do servidor nacional são a garantia de menor latência, o suporte da Embratel em português, 24h por dia, via chat ou telefone, sem custo adicional, a cobrança feita em reais, com os impostos já inclusos e 100GB de transferência para qualquer um dos planos de Cloud Server. Garanta a melhor performance dos seus projetos usando o Cloud Server Embratel.

Mercado Livre prepara mega evento Experience “Os dois importantes e esperados eventos anuais realizados pelo Mercado Livre, a Developer Conference e a Universidade Mercado Livre, ganharam um novo formato neste ano e serão realizados juntos, no Mercado Livre Experience. A mudança reunirá de uma só vez todos os públicos envolvidos no e-commerce, criando um evento completo e uma experiência imperdível para quem deseja estar por dentro das tendências tecnológicas e de negócios do setor. A agenda do evento, que será realizado no dia 17 de setembro, em São Paulo, inclui palestrantes internacionais, a apresentação de cases de sucesso do varejo online, debates e workshops envolvendo o modelo de negócio de marketplace, e muito mais. A ficha de inscrição, mais informações e a programação completa do Mercado Livre Experience, estão disponíveis no mercadolivre.com.br/experience.

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!

A Bluehost apresenta Impress.ly, o auto criador de sites para celular O Impress.ly é o criador de sites mais fácil do mercado. Para criar um site, você só informa o link de sua página no Facebook ou de algum site antigo que você tenha, e pronto! Sua parte do trabalho já está feita. A inteligência artificial do Impress.ly procura todos os dados que estão espalhados na internet sobre sua empresa: perfis em redes sociais, imagens, vídeos, posts, sua localização, logotipo e até mesmo a paleta de cores usadas por sua organização. O sistema organiza todas essas informações em um site completo, responsivo e integrado com suas redes sociais. Todo esse processo leva menos de um minuto e pode ser feito até a partir de um celular. Os sites criados com o Impress.ly também podem incluir uma loja virtual. Ela conta com o pacote completo de recursos: meios de pagamento como PagSeguro e PayPal, cálculo de frete pelos Correios, além de gerenciamento de estoque e pedidos. Experimente por 30 dias!


81 // Marketplace

E-commerce e marketplace: o passo a passo da integração Por Vinícius Pessin, Diretor executivo do B2W Marketplace Um site que reúne grande variedade e disponibilidade de produtos gera uma experiência mais positiva para o consumidor, já que ele encontra todos os itens que necessita em um ambiente único. Uma boa reputação gera mais tráfego qualificado para o endereço e atrai mais vendedores parceiros (sellers), o que contribui para diminuir os custos de infraestrutura e gerar preços mais atraentes, melhorando assim a experiência do consumidor. Esse é o ciclo virtuoso que ampara o marketplace, onde pequenos e-commerces têm a chance de expor seus produtos para um mercado gigantesco e gerar mais vendas.

seguir, apresento alguns pontos que fazem parte desse início da integração:

Grandes redes, como Americanas.com e Submarino, oferecem essa possibilidade para parceiros de todos os tamanhos. Eles podem expor seus produtos no marketplace das marcas e ter acesso ao maior tráfego da Internet brasileira.

Alguns desses pré-requisitos costumam ser: ter boa reputação no Reclame Aqui e medalha E-bit, além de bom potencial (o que pode incluir preços competitivos e um sortimento diferenciado de produtos).

O seller que deseja fazer a integração de seu e-commerce deve estar atento a alguns detalhes que o responsável pela integração deverá administrar com mais cuidado. A exposição irá ampliar a requisição de produtos e, com isso, etapas como cadastro, estoque e entrega precisam ser analisadas e controladas atentamente.

Integração passo a passo Ao iniciar a integração da loja virtual com o marketplace, alguns cuidados iniciais podem ser facilitadores de todo o processo que se sucederá, desde que sejam bem geridos. A

1. Solicitar a entrada no marketplace O ponto essencial é escolher lojas estratégicas, que possuam grande tráfego de consumidores e sejam de sua extrema confiança. Grandes players possuem uma estrutura de suporte que te auxiliará em todos os passos para fazer a integração. Você pode submeter seu pedido para entrar e, se atender alguns pré-requisitos, terá pouco a ajustar após a integração.

Assim que sua loja for aprovada, o marketplace irá liberar uma chave de acesso para iniciar o processo de integração. O procedimento da solicitação até a integração tem duração de aproximadamente duas semanas.

2. Cadastro de produtos Um ponto de atenção é cadastrar e categorizar corretamente os produtos, incluindo foto, descrição, cor, tamanho e outros detalhamentos que ajudem a ilustrá-los. Outro registro que deve ser feito é aquele referente à estrutura mercadológica do produto, como departamento, linha, classe e subclasse a


82 // Marketplace

que ele está associado - informações estas que geralmente obedecem a critérios prévios de documentação da indústria. Quanto mais clareza houver nas informações, maior será a segurança do consumidor sobre as especificações do produto que está adquirindo. A categorização é o vínculo entre o produto e sua categoria correspondente no site. Ao cruzar essas informações de cadastro, o sistema também poderá exibir advertências legais para itens que obedecem a legislações específicas, como produtos destinados a maiores de 18 anos. Se o seller já tiver uma base com o código EAN dos produtos, bem como títulos e descrições, fica mais fácil que o sistema faça match (compatibilidade) entre as informações. Assim, o cadastro ocorre mais rapidamente. Essa integração poderá ser feita tanto via API, como pelo portal; e o parceiro deve garantir que o EAN pertença mesmo ao item cadastrado.

3. Estoque dos produtos A integração do e-commerce com o marketplace otimiza uma série de processos e também é uma maneira de divulgação que gera resultados significativos. O controle de estoque é importante para manter as informações em dia e, ao mesmo tempo, comercializar os produtos que estão disponíveis. O cancelamentos de pedidos, por exemplo, pode interferir na avaliação da loja e gerar má performance. O desenvolvedor deverá ter certeza de que seus sistemas internos estão aptos para gerenciar o estoque, evitando oferecer produtos esgotados, por exemplo. Ele deverá garantir ainda que os produtos que foram para o carrinho do consumidor tenham vindo de uma compra consumada

ou voltem ao estoque, sendo identificados corretamente como disponíveis. Toda essa gestão é feita via ERP ou por um integrador de marketplace. Ambas soluções otimizam os processos e unificam as informações – estoque, financeiro, pedidos etc em um banco único, que pode ser utilizado para tomada de decisões estratégicas.

4. Estratégia de precificação A maioria dos marketplaces possui regras para atualização de preços e promoções. Os sistemas normalmente levam aproximadamente 30 minutos para atualizar os preços. Promoções também devem obedecer algumas regras, como redução de preço limitada a 50% por vez. Sendo assim, para aplicar um desconto de 70% ou 80%, o lojista deveria aplicar a promoção de 50% e depois aplicar mais uma de 20% ou 30% (em casos como esse o segundo desconto é somado ao primeiro. Isso é, o desconto é aplicado sob o valor original do produto). Todos os procedimentos são simples e aprimoram a experiência tanto do seller, como do cliente. Muitos deles são realizados uma só vez por produto e depois o sistema terá tudo o que precisa para exibir os itens e automatizar as vendas. O maior benefício dos marketplaces é a exposição dos produtos aos clientes que já possuem o hábito de realizar compras nos grandes players.

VINÍCIUS PESSIN é administrador de empresas, empreendedor e mercadólogo, com mais de 20 anos de experiência nas áreas de e-commerce, Internet, TI e telecom. Liderou equipes em companhias como Portal Terra, Plugin, Diveo, UOL e e-smart. Atualmente, é Diretor Executivo do B2W Marketplace.


Drops do mercado

83

WordPress REST API – o impossível ficou para trás Durante este ano, a Apiki estará com a iniciativa WordPress REST API - o impossível ficou para trás. Com ela, irá divulgar as inúmeras e revolucionárias facilidades e possibilidades que essa aplicação agregou à plataforma por meio de materiais focados, desenvolvidos pelos seus especialistas responsáveis por grandes cases do mercado. Você sabe o que é o WordPress REST API? Em poucas palavras, a REST API do WordPress é uma forma simples, flexível e poderosa que permite o acesso seguro dos dados de um site WordPress externamente a partir de requisições em JavaScript de todos os tipos de aplicativos. A iniciativa atenderá tanto curiosos quanto técnicos. Serão disponibilizados ao longo da campanha whitepapers, webinars, dicas, artigos técnicos, e o melhor: tudo gratuitamente. Quer ficar por dentro de tudo o que vai rolar? Você já pode se inscrever no endereço apiki.com/wordpress-rest-api.

Conhecimento, formação e certificação oficial em um só lugar

Stelo tem Checkout Transparente para clientes

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.

Os varejistas que optarem pela Stelo como facilitadora de pagamento contam com a opção de checkout transparente. Com isso, no processo de finalização do pedido e efetivação do pagamento, não há redirecionamento, o checkout ocorre no ambiente próprio da loja, tornando o procedimento mais prático e rápido. A Stelo oferece ainda outras duas formas de checkouts com carteira digital: o Lightbox, com janela personalizada dentro do site; e o Redirect, com direcionamento para a tela de pagamento da Stelo. O varejista pode escolher a melhor opção para seu negócio, seja ele pequeno, médio ou de grande porte. A integração é feita de maneira fácil e segura, e funciona em qualquer dispositivo.

Umbler lança deploy “automágico” via GitHub e integração com New Relic A Umbler, startup de Cloud Hosting voltada para agências e desenvolvedores, continua investindo em recursos para facilitar a vida de desenvolvedores. A empresa, que já tinha lançado integração com Git, agora permite o deploy “automágico” via GitHub, integrando-o à Umbler de modo que toda vez que o desenvolvedor publica o código no seu GitHub, ele é automaticamente replicado para a hospedagem. O add-on de monitoramento da New Relic também é comemorado pela equipe e usuários uma vez que permite que quem hospeda projetos com a Umbler possa ter um raio x da aplicação, tempo de resposta e outras informações importantes da aplicação em produção. A Umbler incentiva que clientes façam sugestões de recursos para implementação, através do site e contato com a equipe “nessa fase, o feedback dos clientes vale muito para que possamos desenvolver o melhor produto”, comenta Fábio Borges, CTO da empresa.



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. Tudo o que signifique “fazer a internet do Brasil” para você, cabe aqui! Quer participar? Envie uma foto e descrição para redacao@imasters.com.br

Agar.io, o game criado por um brasileiro, que ganhou o mundo Provavelmente você já conhece o Agar.io (http://agar.io/), um jogo de ação online multijogador. A novidade, que já apareceu no famoso seriado House of Cards, é criação de um brasileiro, o Matheus Valadares, que vendeu recentemente o aplicativo para a empresa britânica Miniclip. Nele, os jogadores controlam uma célula em um mapa (daí o nome do jogo, que vem de ágar substância utilizada para cultura de bactérias). O objetivo é ganhar o máximo de massa possível ao engolir células menores sem ser engolido por outras maiores. O site do jogo foi classificado pela Alexa, em julho de 2015, como um dos mil sites mais visitados. Já as versões mobile (Android e iOS) foram baixadas mais de 10 milhões de vezes só na semana de lançamento. Um dos lugares que o jogo mais fez sucesso foi na Turquia. Por lá, durante as eleições, em junho de 2015, os jogadores transmitiram as suas opiniões políticas, colaborando com outros jogadores com opiniões semelhantes. Alguns partidos políticos também usaram o jogo em cartazes eleitorais como um símbolo de apoio. No seriado americano House of Cards, o personagem principal, Frank Underwood, conhecido pelo seu gosto por jogos online, apareceu cheio de intimidade com o Agar.io na quarta temporada da série. O Agar.io foi escrito em JavaScript e C++. Uma semana após entrar no greenlight do Steam, o criado anunciou uma futura versão free-to-play do jogo para download. O plano era incluir recursos na versão do Steam não disponíveis na versão de navegador, como modos adicionais, personalização e um sistema de conta. Ele foi aprovado para distribuição no Steam devido ao interesse da comunidade. Em 8 de julho de 2015, uma versão móvel de Agar.io para iOS e Android foi publicada pela Miniclip. O jogo pode ser jogado em um deathmatch ou entre equipes; e ganha quem obter a maior célula. O jogo ainda conta com os vírus, que dividem as células maiores do que eles e são usados como escudo por celulas menores do que a dos jogadores. É possível mudar a aparência das células com palavras ou frases pré-definidas.


86 // Por aí

2ª edição do DevCommerce Conference aconteceu em São Paulo Nos dias 06 e 07 de junho, São Paulo recebeu mais uma edição do DevCommerce Conference. O evento, que foi totalmente voltado para desenvolvedores de lojas online e apresentou alto nível técnico nos conteúdos, reuniu cerca de 1.500 congressistas. No primeiro dia, os participantes puderam participar de workshops e minicursos técnicos ao longo do dia. Já no dia 07, o dia foi totalmente dedicado a palestras, que ocorreram simultaneamente em dois auditórios. Passaram pelo palco do evento nomes como André Fatala, CTO do Luiza Labs, do Magazine Luiza; Eduardo Maia, IT Coordinator Marisa; Guilherme Roveri, Arquiteto de Software Netshoes; Paulo César Jeveaux, IT Manager da Wine e tantos outros. Para assistir às palestras, acesse: http://devcommerce2016.imasters.com.br/. Este ano, a Agenda iMasters ainda conta com mais dois grandes eventos: o Android DevConf, que acontece nos dias 05 e 06 de setembro e o iMasters InterCon, nos dias 21 e 22 de outubro. Reserve sua agenda e inscreva-se! Para maios informações, acompanhe o portal iMasters ou envie e-mail para eventos@imasters.com.br

Mercado brasileiro de IoT ganha destaque na IoT Week Belgrade O IoT Week Belgrade é um dos maiores eventos sobre Internet das Coisas do mundo. E a edição deste ano, que aconteceu entre os dias 31 de maio e 2 de junho, contou com a participação de alguns brasileiros, como Alberto Paradisi, vice-presidente de pesquisa e desenvolvimento do CPqD; Gabriel Antonio Marão, coordenador do Fórum IoT Brasil; Ricardo Rivera Lima e Maria Cunha, representantes do BNDES; Roberto M. Cesar Jr., representante da FAPESP; Sergio Takeo Kofuji e Moacyr Martucci Jr, professores da Universidade de São Paulo. No painel dedicado ao Brasil, eles falaram dos avanços do País na área, como o mercado e os pesquisadores brasileiros pretendem contribuir para o crescimento da IoT no mundo e as parcerias realizadas com a União Européia.


87 // Por aí

Aluno do ICMC utiliza técnica para classificar sentimentos de usuários no Instagram O aluno de graduação da USP, Gabriel Giancristofaro, decidiu descobrir se os cidadãos de uma cidade ou de um país estão satisfeitos com os serviços oferecidos por uma instituição através do Instagram. A técnica computacional usada por Gabriel pode determinar, automaticamente, se os usuários da rede social estão felizes ou insatisfeitos com alguma entidade, através da análise de infinitas postagens ou comentários. Seu projeto foi premiado na Universidade do Estado da Califórnia, campus de Fullerton, onde o estudante realizou intercâmbio. O modelo funciona da seguinte forma: por meio de um algoritmo, sequência de comandos que é passada para o computador a fim de definir uma tarefa, é possível analisar as imagens e textos (legendas e comentários) que são postados na rede social e classificá-los como positivos ou negativos. Suponha que uma loja de eletrodomésticos deseja medir o grau de aceitação dos clientes com seus produtos. Para que isso seja possível, a empresa deve apenas criar uma hashtag (palavra-chave antecedida pelo símbolo #) que remeta à loja ou ao produto vendido e, toda vez que um ou outro for mencionado, automaticamente o que foi publicado será coletado e classificado. A ideia de realizar o projeto surgiu depois que ele fez iniciação científica com o professor Jó Ueyama do ICMC. Com a ajuda do docente, o estudante entrou em contato com o pesquisador norte-americano Anand Panangadan, que se tornou seu orientador no período de intercâmbio para a Universidade americana.

Websérie mostra a vida profissional de personagens do e-Sports brasileiro Após o sucesso do vídeo manifesto “Eu sou gamer” (assista em http://ow.ly/QbAV301xjCt), a AOC estreou no final de junho a websérie “Eu Sou Gamer”, que vem mostrando, ao longo dos episódios, o início da carreira e dedicação de personalidades que ganham a vida no mundo dos games. O primeiro episódio foi com o atleta profissional de e-Sports Kamikat, conhecido mundialmente por disputar campeonatos nacionais e internacionais de League of Legends. “As pessoas precisam entender que este é um negócio muito sério. Ainda há um pouco de preconceito porque é algo novo, mas estamos desmistificando isto aos poucos, e ações como esta são muito importantes para conseguirmos”, finaliza Kami. Os episódios seguintes foram com MiT, treinador; Paada, empresário e da youtuber Paola Buzz, com participação da gamer Cherry Gums.


88 // Cultura Organizacional

Cultura > Times > Pessoas > Processos Por Léo Hackin, IT Manager na Wine.com.br e de inovação no WineLabs

Existe um ditado chinês globalizado que diz: “Se deres um peixe a um homem faminto, vais alimentá-lo por um dia. Se o ensinares a pescar, vais alimentá-lo por toda a vida”. Com essa máxima, trago a reflexão que faço há alguns anos: até que ponto as pessoas estão preparadas por default para trabalhar nesse novo cenário pós-Fordismo, com várias metodologias e processos contemporâneos que ditam que as pessoas devem ser/ estar motivadas, proativas e auto-organizáveis para fazerem o unlock do verdadeiro sucesso? Algumas empresas buscam sua tábua da salvação em frameworks consagrados, como o Scrum, metodologias ágeis, como o XP e um monte de livros de receita com roteiros de atividades para um time de desenvolvimento e gestão de produtos ter sucesso. São formulas que andam ombro a ombro com o jeito lean e agile de tocar a vida, os projetos e tudo mais da economia atual. Isso garante (ou não) o peixe. Mas ensina as pessoas a pescar? O Manifesto Ágil, quase como uma tábua de mandamentos do mundo ágil, define: “Indivíduos e interação entre eles são mais que processos e ferramentas”. Em seus princípios, um em especial fala “Construir projetos ao redor de indivíduos motivados, dando a eles o ambiente e o suporte necessário,

confiando que farão seu trabalho”. Outro diz “Pessoas relacionadas a negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto”. Motivação, confiança, trabalhar em conjunto, ambiente e suporte... Pode uma empresa conseguir o sucesso pretendido simplesmente implantando uma metodologia ou framework ágil no seu time de trabalho? Isso sem mudar seu próprio mindset e a cultura interna para prover às pessoas um ambiente e suporte que tragam motivação e confiança entre elas?

Pessoas > processos 7 anos atrás me encontrava numa recém-aberta startup com meus sócios. Debaixo dos braços, um monte de livros de Scrum, XP, Lean e exemplos de empresas que admirávamos e que estavam indo super bem e já eram ágeis. O que faríamos para fazer as coisas acontecerem? Um dos motivos de termos começado uma empresa é que tínhamos certeza de que os resultados não eram apenas gerados por processos, mas especialmente pelas pessoas. Queríamos fazer diferente. Então, do alto da nossa “sensatez empreendedora”, gastamos metade de nosso capital social inicial em três itens que eram de vital


89 // Cultura Organizacional

importância para que as pessoas (a gente, no caso) ficassem bem: uma cafeteira legal, um ar condicionado potente e uma televisão para ligarmos o videogame. Naquele momento fizemos uma autoafirmação importante e genuína: queremos que as pessoas sejam felizes e fiquem bem. Google, Facebook, Spotify e tantos outros exemplos traduzem de forma clara e reconhecida que o mindset real de prover um ambiente e suporte para fazer as pessoas felizes e se manterem motivadas. A motivação por si só não gera felicidade e vice-versa, mas, por outro lado, uma não vive sem a outra.

“Um dos motivos de termos começado uma empresa é que tínhamos certeza de que os resultados não eram apenas gerados por processos, mas especialmente pelas pessoas” Descobrimos que pessoas felizes fazem software de qualidade que deixa clientes felizes. Mas não era apenas um frigobar com cerveja, flexibilização de horários, dress code zero e tantas outras coisas que se materializaram depois de um ano de atenção da mídia e do mercado local (chamavam-nos carinhosamente de Google Capixaba), contratos bacanas sendo feitos (o maior deles com a Wine.com.br) e clientes felizes com os resultados do trabalho. É essencial as pessoas trabalharem bem em conjunto. Como lidar com uma pluralidade de experiências, expertises, personalidades num ambiente que deveria ser leve e ao mesmo tempo produtivo o bastante para a realidade de uma startup?

Esse build de confiança por vezes é deixado em segundo plano em detrimento de um monte de consequências que as metodologias ágeis deveriam fazer brotar no coração de todos. Deveriam? Como fazer uma Sprint Retrospective ser realmente efetiva se as pessoas têm um monte de problemas não-técnicos na sprint? Como a reunião diária em pé pode servir ao objetivo de dar feedback sobre os problemas do time se as pessoas ainda têm medo de se expor? Realizamos esse build apoiados no ciclo: • Aprendizado, para potencializar o que a pessoa tem de bom e o que ela precisa para difundir isso dentro da empresa. É importante ter sensibilidade e tato pra entender que o técnico tem que andar de mãos dadas com o comportamental, e vice-versa. Uma pessoa extremamente técnica que não tem os skills pra repassar esse conhecimento para frente, um gênio que não sabe trabalhar em grupo, nem aceita críticas, o líder que não é servidor. No outro extremo, a pessoa de boa lábia que não programa direito, o servidor que não lidera, nem assume seu papel… • Admiração/Exemplo, que nasce naturalmente quando se observa a pessoa dando o melhor de si pra melhorar e aprender. A admiração e o exemplo fazem as pessoas se espelharem, se motivarem e, num caso extremo, saírem do seu eixo normal. Ora, o


90 // Cultura Organizacional

que estou fazendo para acompanhar essa pessoa e não me tornar irrelevante? • Respeito (mútuo), então, se faz existente quando o aprendizado se consolida e a admiração é relevante o bastante para enxergar no outro o reconhecimento de alguém que venceu as barreiras e as dificuldades para melhorar.

Times > pessoas Como você se sente trabalhando com alguém que você admira e respeita? O conceito de time das metodologias ágeis sempre mostra os times como grupos auto-organizáveis, autônomos e que devem entregar um resultado após uma iteração. Resguarda-se que eles devam também ter coragem. Mas como ter coragem se você não confia nas pessoas? O build de confiança que tinha sido feito, manifestava nos times alguns comportamentos que, independentemente das cerimônias Scrum e práticas XP, acabaram fazendo parte de praticamente todos os times. Com sua autonomia e nossa filosofia de hierarquia horizontal, os times acabavam fazendo emergir os líderes naturalmente. Em todo projeto, às vezes por mais de uma vez, os times tornavam visíveis quem era o líder que conduziria aquela sprint ou até o projeto. Não eram líderes por cargo ou por uma escolha top-down, e muito menos tratados publicamente assim - eles apenas eram. Olhando especificamente, essa estrutura social de tribo fazia até mesmo os times terem seu próprio comportamento específico, regras e condicionais. Independentemente de utilizarmos as mesmas metodologias, o comportamento específico do grupo era

singular. Eles se desafiavam a errar rápido para aprender rápido. Os recém-contratados eram incentivados a codarem no primeiro dia e enviarem código para a base de produção. Isso era comemorado pela empresa inteira. Esse “acontecimento” gerava uma vibe de pertencimento e realização indescritível na pessoa e no time. Errou? O time estava lá pra te ajudar a corrigir e te ensinar onde aconteceu o erro. Geralmente, tínhamos novatos já participando de grandes deploys em produção com poucas semanas. Os times se tornaram generalistas prestativos. Todos faziam de tudo, mas alguns eram especialistas em algo que guiava todos. Lembram dos líderes naturais? Aqui eles eram ainda mais específicos, causais e contextuais. Esses comportamentos se explicam um pouco com a Teoria da Aprendizagem Social, de Alberte Bandura, que diz “As pessoas podem aprender a partir da observação de outras pessoas que praticam um determinado comportamento”. Isso é reforçado por uma necessidade de aceitação de grupo e social, que é instintiva e mais forte que qualquer regra imposta. “Se todo mundo ajuda um ao outro, eu vou ajudar também”.


91 // Cultura Organizacional

Cultura > Times Num dado momento, descobrimos que nosso build de confiança estava sendo feito pelos próprios times. Mas o que é interessante é que mesmo as pessoas mudando de time e mudando de tribo, elas continuavam no seu ciclo do build de confiança e mudando o mindset dos times em que entravam. Algumas cerimônias, que eram feitas de um jeito, eram polinizadas pelas ideias e conceitos que umas pessoas de um time X levavam para o time Y em que elas foram inseridas. Esse comportamento não era ditado, forçado nem requerido. Os times, apesar de singulares no que diz respeito a comportamento, regras e leis sociais e às pessoas, e de se comportarem de acordo com o que o seu time ditava, conseguiam se adaptar e trabalhar bem em outros times, que às vezes eram completamente diferentes.

e-commerce e software debaixo do braço. Saímos da nossa codação de software do dia a dia para um cenário de gerar resultados para uma empresa que, mesmo online, é essencialmente varejista, e a geração de valor final era diferente da que a gente estava acostumado a fazer (software x vendas). O que aconteceu foi que a cultura dos times foi junto. Mesmo com a mudança de lugar, ambiente corporativo e afins, sabíamos que nosso propósito ainda era criar o melhor software que podíamos para nosso cliente, que agora era exclusivo e único. Então, isso funciona em qualquer lugar, em qualquer empresa. E não pense que isso é só para software. O que importante mesmo é ter um propósito, ter uma cultura forte, com times de pessoas felizes para eles darem o seu melhor. Hey ho, let’s go.

Isso foi posto à prova quando novos times, com gente totalmente nova, se formaram. O contato com outras pessoas que tinham pertencido a outros times fazia aquele time se moldar à forma como todos os outros times trabalhavam. Nossas pequenas ações, momentos e práticas formaram, então, nossa cultura, que estava moldando os times para constituírem a confiança das pessoas. Uma cultura forte ajuda as pessoas a serem felizes e darem o seu melhor. Pessoas em qualquer negócio, em qualquer lugar. Toda essa história vem desde 2009 e, no início de 2016, todas essas pessoas e times viraram parte da Wine.com.br, o maior e-commerce de vinhos da América Latina e o terceiro do mundo. Saímos de uma casa para uma empresa com umas 400 pessoas, operação, logística, marketing, controladoria, financeiro... Toda uma forma de agir e resolver os problemas com algumas dezenas de desenvolvedores e nossa experiência em

LÉO HACKIN é IT Manager de um time de pessoas inoxidáveis na Wine.com.br e de inovação no WineLabs. Cofundou a Giran E-commerce Solutions e liderou o desenvolvimento da plataforma de e-commerce Adena. Depois de mais de 20 anos construindo aplicações web para empresas de todo porte, liderando times com grande diversidade e tamanhos e inventando moda utilizando Scrum/XP/Lean, agora tenta ajudar as pessoas a serem as melhores que podem a cada dia, utilizando uma penca de mindsets ágeis, inspirações, aspirações e (paix|tes)ão pelo que faz.


92 > 7Masters

Os 7Masters de abril e maio 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:

Web Payments Acacio Santana, especialista em meios de pagamento eletrônico e diretor de produtos da payleven do Brasil, fez uma apresentação mais técnica, falando sobre “Client Side Encryption” - como a criptografia do lado do cliente pode ajudar o desenvolvedor a aprimorar a segurança para os meios de pagamento existentes hoje. http://ow.ly/vKU5301ir40 Para falar sobre bitcoins, João Paulo Oliveira tratou do assunto. O sócio da Foxbit trouxe um conceito muito mais amplo de bitcoin, afirmando que ele é muito mais do que uma moeda digital. http://ow.ly/s1GI301ir65 Rafael Turk, CTO na Entria Tech e no bran-

dlovers.com, trouxe como tema central de sua talk os tokens e as fraudes no e-commerce. http://ow.ly/lBoZ301irmX

O funcionamento dos intermediadores de pagamento foi o tema da palestra de Eduardo Oliveira, responsável pelas APIs de integração da Stelo.http://ow.ly/i7rQ301isfi A talk sobre pagamentos em SaaS e marketplaces foi comandada por Patrick Ribeiro Negri, sócio-fundador da iugu, que tratou das tendências do mercado nessa área. http://ow.ly/o2np301isL8 “A Revolução Fintech já começou”, anunciou José Prado Villela dos Reis em sua palestra. O head de novos negócios do FintechLab relacionou as iniciativas fintech com web payments no Brasil. http://ow.ly/tD6t301itfY


7Masters < 93

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

3D Printing Andre Skortzaru, co-fundador da 3D Criar, falou sobre os meios de fomentar a impressão 3D, sempre trabalhando o aprendizado criativo. http://ow.ly/935i3021GrK

impressão 3D pode alavancar a tecnologia assistiva no Brasil. A resposta você vê aqui: http://ow.ly/rF3q3021Hqw

“Modelagem com foco em impressão 3D” foi o foco da palestra de Roberto Sampaio, co-fundados e head of content na empresa 3D Factory. http://ow.ly/rtFt3021GSi

Rafael Matsuyama, CEO & Founder na RM Consultoria, mostrou que criar e costumizar seus produtos pode ser muito mais divertido do que comprá-los prontos! http://ow.ly/N3wZ3021HI5

Daniel Basconcello, owner na Opcode Tecnologia, trouxe ideias de como construir sua própria impressora 3D. O professor de robótico mostrou que a façanha é mais simples do que parece: http://ow.ly/O5oV3021H5j

Cláudio Luis Marques Sampaio, entusiasta da tecnologia e dono de uma empresa na área, falou sobre a alvorada da impressão 3D, ou SLA. @016 é o ano, de acordo com Cláudio! http://ow.ly/zjea302428k

Felipe Sanches é ativista e desenvolvedor de software livre e projetista de hardware livre. Em sua palestra tratou sobre educação digital com impressoras 3D. http://ow.ly/4EaH3021Hd8 Em sua palestra, Maria Elizete Kunkel, física e PhD em Biomecânica, indagou se a

Quer indicar um tema ou um mestre para as próximas edições? Envie um email para: 7masters@imasters.com.br


94

Drops do mercado

Fazer mais com menos – estratégias para sair da crise A tendência da maioria das pessoas é desanimar com a estagnação do cenário econômico. Porém, é justamente em épocas difíceis que é preciso perserverar e buscar por novas e boas oportunidades – tanto no mercado de trabalho quanto na vida. Para encontrar inspiração, repertório e conteúdo, uma boa dica é assistir os videocasts que a faculdade de tecnologia FIAP disponibiliza gratuitamente a cada 15 dias, trazendo temas relevantes, apresentados por especialistas no assunto. Para se ter uma ideia, os mais recentes foram “Storytelling, Marcas e Mentiras”, com Joni Galvão; “Cinema e Inteligência Artificial”, com Henrique Poyatos; “Smart Cities e Smart People”, com Stella Hiroki, e “Direito Digital: uso ético, seguro e saudável da Internet” com Rony Vainzof. Vale a pena conferir em http://fiap.me/videocast-imasters08.

Stone apresenta ao mercado novo sistema Antifraude 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.

UOL HOST lança Cloud Público com plataforma OpenStack para PMEs, com cobrança em reais

O UOLHOST amplia seu portfólio de Cloud Computing e passa a oferecer o serviço de nuvem com plataforma OpenStack, que proporciona ao cliente mais flexibilidade para a criação e gestão de seus ambientes. A plataforma OpenStack, do UOL HOST, oferece também maior controle de gastos, já que a cobrança é feita de forma diferenciada, com um procedimento parecido com os sistemas pré-pagos, ou seja, o cliente coloca créditos em sua conta e vai utilizando o serviço, que é cobrado por hora, em reais, via cartão de crédito nacional e de acordo com o consumo dos recursos de seu servidor. O sistema ainda permite que o cliente deixe uma recarga mensal programada, de valor fixo, a sua escolha. Para começar a usar o OpenStack no UOL HOST, o usuário só precisa fazer uma compra inicial a partir de R$ 25. Para mais informações sobre o produto, acesse: uolhost.com.br/openstack


O PRESENTE É estudar online.

| CURSOS ONLINE

TOP RANKING HISTÓRIAS DA VIDA REAL o que estão estudando mais no Cursos Imasters Online

DESENVOLVENDO SITES COM BOOTSTRAP - TREINAMENTO ESSENCIAL

Facebook Marketing

PHP ORIENTADO A OBJETOS TREINAMENTO ESSENCIAL

depoimentos de quem já estudou e estuda no Cursos Imasters Online

Consegui desenvolver projetos profissionais e lucrar com isso após fazer basicamente todos os cursos do grupo, hoje a Metrossexuais é um dos maiores E-commerce para o público Metrossesual do país. Rafael Zaia - metrossexuais.com.br

Fiz os cursos de e-commerce, pricipalmente de magento e consegui desenvolver a loja virtual da Pink Sweet, voltado para moda feminina e potencializar minhas vendas rapidamente. Antonilza Barros - pinksweet.com.br

SEO - SEARCH ENGINE OPTIMIZATION - TÉCNICAS DE MARKETING NO GOOGLE

Com uma linguagem simples e direta, os cursos disponíveis na plataforma foram feitos para atender um público que precisa de flexibilidade de tempo para organizar a sua grade de estudos.

O EAD VEIO PRA FICAR Hoje, um dos espaços onde a educação mais cresce é nas empresas, como uma ferramenta estratégica para desenvolver e ampliar o negócio. A Educação Corporativa se estabeleceu no mercado para atender a expectativa de vencer a concorrência com estratégias sustentáveis e econômicas. Os prazos para alcançar as metas organizacionais estão mais curtos, porque as transformações são quase instantâneas.

https://cursos.imasters.com.br



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.