Page 1

Maio 2016 / Ano 05 / Edição 18 Nós fazemos a Internet no Brasil R$24,00

PROGRAMAÇÃO FUNCIONAL EM PLENO 2016? POR QUE NÃO?

#pag21

POR DENTRO DO W3C

SEO

MARKETING DIGITAL

OS BENEFÍCIOS DO USO DO ATRIBUTO LANG

SEO DO INÍCIO AO FIM

A EXPOSIÇÃO DA MARCA, NA NOVA ERA DA INTERNET

#pag17

#pag51

#pag60


// 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 Alex Lattaro, Bruno Rodrigues, Fábio Akita, Fábio Borges, José Valim, Kemel Zaidan, Lenold Sequeira Vaz, Marcelo Varon, Mariano Gomide de Faria, Reinaldo Ferraz, Ricardo Ogliari, Vinícius Denny, Will Trannin. 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

Estamos em uma época de mudanças, quebra de paradigmas, transformações digitais e provocações. E não se engane, nós sempre estaremos. Essa é a beleza da nossa profissão, a mutação, a adaptação e, principalmente, a evolução. A Internet é assim. Funciona hoje melhor do que ontem e pior do que amanhã. E foi pensando nessas transformações, na evolução e, principalmente, na eliminação do comodismo, que nós chegamos a esta edição da Revista iMasters. Aqui, você encontrará uma entrevista com Ben Ramsey, um dos maiores gurus do PHP, que participou conosco no PHP Experience 2016. Ele traz uma visão da evolução da Internet e das transformações da comunidade PHP. Além disso, temos os paradigmas revisitados. Abordamos a importância da programação funcional, seu modismo e seus mindsets. Entre as abordagens dos nossos colunistas, você também encontrará provocações sobre novas formas de pensar sobre bancos de dados, a importância dos profissionais durante os processos nos projetos da sua empresa, como manter sua marca na tão mutável Internet, dicas sobre privacidade, mobilidade, user experience e muito mais conteúdos que, com certeza, agregarão conhecimento para você, prezado leitor e colaborador. Seja bem-vindo! Espero que aproveite as próximas páginas! ;)

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


TRAGA O MOTOR DE PAGAMENTOS STONE PARA SUA SOLUÇÃO DESKTOP Encontre tudo o que precisa para desenvolver a sua solução integrada de pagamento, aceitando transações de débito e crédito. Acesse o DevCenter da Stone e saiba mais:

dev.stone.com.br

PARA MAIS INFORMAÇÕES:

www.stone.com.br meajuda@stone.com.br


Sumário // 7

17

Por dentro do W3C Os benefícios do uso do atributo lang

CAPA Programação funcional em pleno 2016? Por que não?

21

51

SEO SEO do início ao fim

marketing digital 60

A exposição da marca, na nova era da internet


Sumário // 8

11.

17.

Entrevista // Ben Ramsay

A importância da comunidade PHP e da colaboração com projetos open source

21.

Reinaldo Ferraz Por dentro do W3C // Os benefícios do uso do atributo lang

26. Fábio Akita

Alex Lattaro Capa // Programação funcional em pleno 2016? Por que não?

32.

Programação // Meus pensamentos sobre o modismo da programação funcional

38. Fábio Borges Programação // Gestão de produto na prática

José Valim Programação // Elixir em tempos de microservices

44. Bruno Rodrigues Sr. Conteúdo // Marcas que não interagem

48. Vinícius Denny UX // Experiência do usuário online e o déficit de atenção contemporâneo


Sumário // 9

51.

57. Ricardo Ogliari

Will Trannin SEO // SEO do início ao fim

60.

Mobilidade é tudo // Aplicativos híbridos e Ionic Creator

63.

Lenold Sequeira Vaz Marketing Digital // A exposição da marca na nova era da Internet

65.

Mariano Gomide de Faria Banco de Dados // O futuro do banco de

dados de cliente é não ter uma chave única para o cliente

68.

Kemel Zaldan Código Livre // Serverless Applications

72.

Marcelo Varon Marketing // Automação de marketing: Um desafio de tecnologia e pessoas

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

A iMasters é uma revista de Tecnologia/Web aberta a novas ideias. Para colaborar envie o seu material por e-mail revista@imasters.com.br


HĂĄ uma nova forma de fazer e-commerce Marketplace

Tecnologia

LogĂ­stica

b2wservices.com.br

InteligĂŞncia


Entrevista

//

11

Ben Ramsay: a importância da comunidade PHP e da colaboração com projetos open source Por Rina Noronha e Alex Lattaro, para Redação iMasters


12 // Entrevista

A comunidade PHP é famosa por ter membros muito ativos e engajados, tanto local, quanto globalmente. Assim, cria-se um universo para colaborações em projetos open source. Nesta entrevista, Ben Ramsay, entusiasta de APIs, defensor de projetos open source e apaixonado pela comunidade PHP, fala um pouco sobre as mudanças dessa comunidade e a evolução de grupos de usuários, a importância de colaborar com projetos open source e a chegada do PHP 7, além de complementar o tema que abordou no PHP Experience 2016: HTTP e HTTP2.

Revista iMasters: A comunidade vem mudando com o tempo. Quais são as diferenças mais importantes entre as comunidades PHP atuais e aquelas de um passado recente (5-10 anos atrás)? Como os grupos de usuários vêm evoluindo? Ben Ramsay: A comunidade PHP está sempre crescendo e mudando. Eu acho que uma das diferenças mais significativas na comunidade nos últimos 10 anos é o aumento de grupos de usuários e de conferências da comunidade, assim como os ecossistemas que cresceram ao redor de ferramentas e frameworks. Atualmente, temos uma miríade de sub-comunidades e comunidades relacionadas, como WordPress, Drupal e Joomla!, que são vastas em tamanho e alcance. Há também muitos outros grupos de usuários, como desenvolvedores que participaram de conferências e aprenderam sobre a comunidade principal e decidiram se conectar a desenvolvedores PHP em suas comunidades locais. Ainda assim, eu não acho que grupos de usuários mudaram muito nos últimos 10 anos. Os estilos dos grupos variam entre os grupos menos formais, que se reúnem em bares ou cafés, e aqueles que têm apresentações formais, no estilo de conferências. No

entanto, não importa a diferença, todos eles mantêm o foco no ensino e em conectar desenvolvedores – essa é a meta deles. A evolução tem ocorrido na comunidade principal, ajudando a conectar grupos de usuários locais, permitindo que seus líderes compartilhem melhores práticas e metodologias. Isso é algo que não acontecia há 10 anos, e por meio de esforços de pessoas como Michelangelo van Dam, Rafael Dohms, Andreas Heigl e Cal Evans, a maioria dos organizadores de grupos de usuários PHP de todo o mundo se conhece e tem maneiras de se conectar, comunicar e aprender uns com os outros. RiM: Você tem uma biblioteca open source, a UUID. Qual a sua experiência com ela, e por que torná-la open source? BR: A biblioteca ramsey/uuid foi a minha primeira biblioteca open source. Eu já havia colaborado com outros projetos deste estilo, mas a biblioteca foi o primeiro projeto open source completamente meu. Mas ela começou como uma espécie de experiência. Eu queria aprender mais sobre Composer e como o gerenciamento de pacotes funcionava, e também sobre como liderar um projeto open source e trabalhar com colaboradores


Entrevista

que eu nunca havia conhecido pessoalmente. A experiência consistiu em eu mesmo testar tudo isso. Eu comecei procurando por problemas que outras linguagens de programação já haviam resolvido, mas não muito bem em PHP. Não me lembro de como escolhi a UUID, mas, quando investiguei melhor, lembro-me de ter visto um monte de bibliotecas PHP que parcialmente implementavam UUID, mas nenhuma seguiu a especificação de UUID totalmente, nem eram muito flexíveis nesse sentido. Dei uma olhada em como UUID é implementado em Java e Python, e usei isso como a base para implementá-lo em PHP. Durante todo esse processo, acho que a experiência foi um sucesso. Aprendi muito sobre como gerenciar um projeto open source, como lidar com releases e versionamento semântico, como trabalhar com vários colaboradores diferentes de todo o mundo, e aprendi muito sobre UUIDs e matemática binária. Foi muito divertido, e eu encorajo outros desenvolvedores a encontrarem um problema que ainda não tenha sido solucionado e a liderarem um projeto open source para resolver esse problema. RiM: Por que as pessoas devem pensar mais em tornar suas colaborações open source, como bibliotecas e outras? BR: Há várias razões para as pessoas tornarem suas bibliotecas e seus softwares open source, mas eu gosto do que Rasmus Lerdorf (criador do PHP) tem a dizer sobre a razão pela qual as pessoas contribuem com o open source. Durante anos, Rasmus resumiu que a principal razão pelas quais as pessoas gostam de contribuir com o open source são os hormônios. Em particular, o hormônio oxitocina é liberado logo após interações sociais positi-

//

13

vas. Esse hormônio reduz nossa ansiedade, nos acalma e nos deixa contentes. Então, contribuir com o open source pode ser uma interação social positiva, e a fazemos porque faz com que nos sintamos bem. É simples assim. Eu não sou muito político ou filosófico em relação a software open source. Acredito que os compartilhamentos são importantes para nossa sociedade e cultura, e é importante mantê-los para benefício mútuo, inovação e competição, mas eu contribuo porque me faz bem. RiM: Na PHP Experience 2016, você falou sobre HTTP e HTTP2. Para onde foi o HTTP? Por que o HTTP2 foi necessário? BR: O HTTP/1 ainda está aqui, mas a forma como o HTTP é enviado pelo TCP está mudando. O HTTP/1 é um protocolo ASCII do TCP, enquanto o HTTP/2 é um protocolo binário do TCP. Todos os métodos e cabeçalhos com os quais estamos acostumados no HTTP ainda são os mesmos. O HTTP/2 foi lançado porque o protocolo SPDY do Google mostrou resultados mensuráveis no mundo real, e provou que uma nova versão do HTTP era possível se mudasse a semântica das mensagens. O Google criou o SPDY para acelerar a web, e o HTTP/2 faz isso gerenciando conexões cliente-servidor e trabalhando comunicação de uma maneira muito mais eficiente. RiM: Que problemas o HTTP2 chegou para resolver? BR: O HTTP/2 tenta resolver o problema da latência da web. Esse problema só vai piorar à medida que as aplicações web se tornam mais ricas, já que requerem cada vez mais solicitações para carregar mais e mais dados e gráficos. O HTTP/2 conseguiu resol-


14 // Entrevista

“Eu não sou muito político ou filosófico em relação a software open source. Acredito que os compartilhamentos são importantes para nossa sociedade e cultura, e é importante mantê-los para benefício mútuo, inovação e competição, mas eu contribuo porque me faz bem“ ver esse problema com recursos ,como seu protocolo binário, multiplexing e server push. RiM: O HTTP2 causa problemas para CDN? BR: O problema resolvido por CDNs é diferente do solucionado pelo HTTP/2, então o HTTP/2 não vai causar transtornos para CDNs. É verdade que CDNs existem para reduzir a latência, mas eles fazem isso fornecendo bandas mais estreitas para recuperar dados, imagens etc. O HTTP/2 não consegue fazer isso. CDNs vão usar o HTTP/2 para proporcionar maior desempenho às suas redes, tanto para streams internos e externos, então o HTTP/2 é mais uma bênção do que uma ameaça para CDNs. RiM: Qual a importância dos PSRs? BR: Enquanto o PHP Framework Interoperability Group (FIG) representa apenas seus frameworks e bibliotecas membros, as recomendações PSRs que eles produzem afetam todos os usuários dos seus projetos membros, e esses padrões e melhores práticas já foram absorvidos pela comunidade, tornando-se práticas que muitos dentro da comunidade de desenvolvedores PHP têm adotado (eu acho). Isso tem tido um efeito positivo na rede de desenvolvedores PHP.

Agora nós criamos mais bibliotecas abertas que interoperam umas com as outras e seguem o mesmo padrão de codificação. Então é mais fácil ler a fonte de qualquer biblioteca que você estiver usando; a formatação do código não engana você. As organizações estão se beneficiando com esses padrões, uma vez que elas são capazes de adotá-los e contratar novos desenvolvedores que já estão familiarizados e confortáveis com eles. RiM: Inicialmente, o Working Group não pensava em uma nova versão do HTTP. Então o Google criou o SPDY e, em seguida, tivemos o HTTP2. Atualmente, o WG está aberto para criar novas versões no futuro? BR: O SPDY do Google forneceu um excelente campo de provas para o HTTP2. Ele provou que um novo protocolo seria benéfico para toda a comunidade web. Na revisão e nos esclarecimentos do HTTP1, e na criação do o HTTP2, o WG garantiu que o HTTP poderia continuar a evoluir e mudar com as necessidades da web. Para facilitar isso, eles introduziram novos registros para os métodos, status de códigos, tipos de frame HTTP2 e mais. Além disso, a adição da funcionalidade de atualização para o protocolo HTTP permite que versões mais recentes do HTTP sejam criadas e implementadas com


Entrevista

relativa facilidade, com clientes e servidores indicando suas capacidades. RiM: O PHP7 foi lançado cerca de seis meses atrás. Qual característica era a mais aguardada por você? A nova versão atingiu suas expectativas? BR: Scalar type hint e return type hint eram as características que eu mais aguardava. Eu acho que a versão superou as expectativas, tanto em características, quanto em desempenho. Isso prova que o PHP como linguagem está longe de diminuir sua relevância e importância para a indústria. RiM: O PHP7 pode reduzir o uso de memória em até 100% quando comparado à versão anterior. Na sua opinião, por que isso aconteceu? BR: Eu acho que isso aconteceu como resultado de um trabalho árduo feito pelos desenvolvedores internos - Dmitry Stogov, Xinchen Hui, Nikita Popov e outros – que refaturaram meticulosamente a engine do PHP, removendo crufts desnecessários e limpando o código. Eles realmente ajudaram o PHP a alcançar novos patamares. RiM: As versões mais antigas do PHP eram realmente muito fracas em relação ao uso de memória, ou o desenvolvimento da nova versão foi realmente absurdo? BR: Toda nova versão do PHP sempre melhorou o uso de memória e desempenho, mas o salto no PHP 7 foi realmente grande. O PHP 7 é resultado do esforço massivo do refatoramento da Engine Zend, que originalmente era chamada de “PHPNG” (PHP next generation). Com o crescimento do PHP 5, outras necessidades surgiram, como melhor desempenho do HHVM, que mostrou melhorias significativas na velocidade e no

//

15

uso de memória. Eu acho que isso estimulou um pouco de competição, o que resultou na criação do phpng pelo pessoal do Zend, que construiu seu modelo de negócios em torno de um ecossistema PHP próspero e de uma solução PHP de alto desempenho. Ter um PHP que é on-par e que até mesmo bate o HHVM em benchmarks é bom para o PHP, e ter um HHVM também tem sido bom para o PHP, pois ele tem sido um bom teste para uma série de novos recursos que vemos na linguagem PHP – scalar type hints, return type hints etc. RiM: Para fechar a entrevista da mesma maneira que começamos, uma pergunta sobre a comunidade: como ela pode ajudar a melhorar o PHP ainda mais? BR: A melhor maneira de ajudar a melhorar o PHP para os membros da comunidade à procura de uma maneira fácil de se envolver no projeto é ajudar a apoiar os esforços do PHP QA. Visite (https://qa.php.net/) e leia a seção “Contributing”. Ela irá levá-lo pelos passos para começar a escrever casos de teste e executar o conjunto de testes para a fonte PHP. Se você estiver confortável escrevendo em C, você pode dar uma olhada nos relatórios de erros do PHP no https://bugs. php.net/ e contribuir com correções para corrigir os erros.


EXPERT EM HOSPEDAGEM: MAIS DE 2 MILHÕES DE SITES NO MUNDO

ACESSE: HTTP://BR.BLUEHOST.COM


17 // Por dentro do W3C

Os benefícios do uso do atributo lang Por Reinaldo Ferraz, Especialista em Desenvolvimento Web do W3C Brasil

Um simples atributo no primeiro elemento de uma página HTML pode não parecer muito importante, mas tem um papel de peso enorme na internacionalização da Web e em como o conteúdo se adapta a outros idiomas. O atributo lang especifica a linguagem principal para o conteúdo e para qualquer um dos atributos de um elemento que contém texto. Ele também é um atributo global da HTML, ou seja, pode ser utilizado em todos os elementos da página. Sua sintaxe é muito simples: O ideal é que ele seja declarado no elemento <html>. Caso haja outros idiomas na página, ele pode ser utilizado para declarar esse texto em qualquer elemento: <html lang=”pt-br”> ..... <p>O texto da página está em português <span lang=”en”>and in english </span>.</p> Ele tem um papel importante para a acessibilidade, pois transmite para o sintetizador de tecnologia assistiva (software leitor de tela) o idioma no qual o áudio deve ser apresentado. Assim, o usuário pode ouvir o texto em português com o vocabulário adequado, como se um nativo estivesse falando o texto. Mas o uso desse atributo vai além da aces-

sibilidade: ele tem um papel importante na internacionalização da Web. Esse atributo pode ser utilizado para alterar o comportamento da página quando o conteúdo estiver escrito em outro idioma. Por exemplo, imagine uma página que possui uma versão em árabe. É possível alterar a fonte da página utilizando apenas a detecção do idioma pelo CSS: body { font-family: “Times New Roman”, Times, serif;

} :lang(ar) { font-family: “Traditional Arabic”, “Al Bayan”, serif; } Em alguns casos, além da fonte utilizada, pode ser necessário mudar a orientação do texto, da esquerda para direita (ltr), da direita para esquerda (rtl). E por falar em CSS, declarar o atributo lang faz com que as quebras de palavras tenham a separação das sílabas de forma adequada (se o navegador suportar essa funcionalidade). Se uma palavra precisa ser quebrada para se encaixar em uma linha, quando a caixa de texto é muito pequena, o uso do atribu-


18 // Por dentro do W3C

to lang faz com que a palavra seja quebrada corretamente, como no exemplo abaixo da palavra “ontologia”.

<p>ontologia</p> ontologia

É fundamental considerarmos a Internacionalização da Web. Não podemos mais pensar em silos fechados e que não se comunicam. A codificação adequada é essencial para não deixar que a inteligência durante a interpretação seja feita pela máquina. O código deve passar a informação e a inteligencia para a máquina, e o atributo lang é uma das primeiras informações que a máquina vai receber ao interpretar uma página Web.

<p lang=”pt-br”>ontologia</p> ontologia

Declarar o atributo lang também auxilia serviços e ferramentas que tratam texto na Web, por exemplo: • Ferramentas de busca que podem fazer uso do atributo para identificar o idioma da página e trazer um resultado mais apurado. • Ferramentas de correção ortográfica e gramatical em campos de formulário ou em elementos com o atributo contenteditable podem utilizar o vocabulário adequado quando o atributo for declarado. • Ferramentas de tradução podem fazer uso de áreas com o atributo lang declarado para fazer ajustes no processo de tradução.

É claro que a internacionalização da Web vai além de declarar o atributo lang. Para verificar mais critérios na sua página, você pode utilizar o validador de internacionalização do W3C, disponível em https://validator.w3.org/i18n-checker/

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


20

Drops do mercado

Link building estratégico para SEO Conteúdo, relacionamento e construção da autoridade web são cada vez mais importantes para quem deseja bons resultados em SEO. Para alcançar esse objetivo, a SEO Master investe nas estratégias de link building, com metodologia diferenciada para cada cliente. O foco está em entender a necessidade de cada um frente ao mercado de atuação. “A nossa base está estruturada na construção de relacionamentos com veículos de comunicação, blogs, portais e outros parceiros. Por isso, contamos com uma equipe composta por profissionais especializados em letras, assessores de imprensa, jornalistas e publicitários”, explica Will Trannin, CEO da SEO Master. O trabalho de link building é mais do que um esforço simples em produzir e distribuir conteúdo. O processo exige análises criteriosas que passam por entender o assunto da página e da URL trabalhadas, estudar sites compatíveis com a publicação e que também possam auxiliar no ranqueamento de palavras ou expressões-chave.

API para emissão de boleto registrado sem tarifa de registro A Gerencianet é o primeiro intermediador de pagamento a oferecer API para a emissão de boletos registrados sem a tarifa de registro. Ou seja, se você trabalha como freelancer e faz suas cobranças por boleto bancário, continuará pagando tarifa apenas em caso de pagamento confirmado. Para realizar a integração, a Gerencianet disponibiliza API em SDK em cinco linguagens diferentes: Python, Ruby, .NET, PHP e Node JS. Além da cobrança por boleto bancário e carnê, a API disponibiliza integração para transações por marketplace, assinaturas, checkout transparente, checkout via lightbox e notificações em cada alteração de cobranças. A tarifa cobrada é personalizada por conta Gerencianet, e cada usuário pode escolher o prazo de disponibilização do saldo, que pode ser até imediato. Para saber mais e fazer uma simulação de tarifas, acesse

A ferramenta ideal para gerenciar ecossistemas digitais e engajar parceiros O API Suite da Sensedia é uma plataforma para gestão de APIs com uma gama de ferramentas que ajudará você, em um simples passo a passo, a expor sua API em questão de minutos. A plataforma contempla um gateway para controle de requisições, um portal para engajar desenvolvedores e um Analytics completo do uso das suas APIs e Lifecycle para administrar a evolução delas. Assim, você terá APIs rodando com todo o potencial de escalabilidade, controle e segurança necessários para a sua estratégia digital. É a ferramenta perfeita para integrações com parceiros, gerenciamento de projetos de Internet das Coisas, estratégias em aplicações mobile, segmentação de clientes e modelos de negócios SaaS.

gerencianet.com.br/tarifas

Faculdade tem mais de 15 cursos de Pós e MBA A Faculdade Impacta Tecnologia acredita que o conhecimento é capaz de nos fazer chegar ainda mais longe. É por isso que oferece cursos de pós-graduação e MBA voltados para as práticas e técnicas mais utilizadas no mercado, fomentando sempre a inovação, a criatividade e a visão empreendedora em seus alunos. O curso de MBA em Gestão Estratégica de E-Commerce prepara o aluno para criar e administrar projetos de comércio eletrônico com base em estratégias, mensurações, ferramentas e pesquisas. O MBA em Gestão de Tecnologia da Informação apresenta todos os aspectos essenciais para uma gestão eficiente de TI, com uma completa infraestrutura acadêmica. Já a Pós-Graduação em Engenharia de Software torna o aluno um especialista em análise, projeto e desenvolvimento de sistemas de software, aprendendo com casos reais e dominando todas as etapas do projeto. Esses são apenas três dos cursos mais procurados entre os 15 cursos de pós e MBA da Faculdade Impacta.

Site Blindado lança scan SSL A Site Blindado oferece agora um novo benefício para seus clientes: o scan de análise para o certificado SSL, que verifica o grau de segurança, além de identificar possíveis falhas resultantes de má configuração. São analisados quatro pontos-chave: 1) Inspeção do certificado (se ele está utilizando chaves SHA1 ou SHA2, por exemplo), 2) Suporte de protocolo (analisando se o SSL ou o TLS seguem as recomendações de segurança), 3) Key exchange (segurança no momento da troca de chaves públicas e privadas) e 4) Cifra utilizadas (conjunto de codificações). Com essa analise, é possível identificar onde será preciso fazer as correções necessárias, a fim de garantir que a comunicação - entre servidor e cliente final - esteja trafegando de forma segura


21 // Capa

Programação funcional em pleno 2016? Por que não? Por Alex Lattaro, Líder Técnico do iMasters

“A mente que se abre a uma nova ideia jamais volta ao seu tamanho original” – Einstein Vivemos de “seguir modas” – e não diga que você não faz isso, pois até quem acredita que não segue nada disso, na verdade, está indo em alguma onda. E atualmente, em desenvolvimento, muito se tem falado de programação funcional - não me crucifiquem, afinal, moda não é necessariamente algo bom ou ruim, é apenas uma tendência contemporânea.

De onde para onde? Se você fizer uma análise da história das linguagens e paradigmas, perceberá que nenhuma foi, ou será, definitiva. Aliás, essa leitura histórica pode ser feita em qualquer aspecto da vida, mas, no mundo da TI, é inconcebível alguém ter em mente que atingimos um patamar final de desenvolvimento. Há sempre mais o que descobrir e melhorar. Assim como Fábio Akita, no seu texto “Meus pensamentos sobre o modismo da programação funcional” (leia o artigo nas próximas páginas desta edição), eu acredito que todas as linguagens têm seus recursos,

possuem uma história, antepassados e foram desenvolvidas com algum propósito e filosofia. Tudo depende dos seus objetivos. Há quem defenda C, outros Java, C++, C#, Ruby, Swift, Objective C, JavaScritp, PHP e tantas linguagens e paradigmas de programação. Alguns desenvolvedores tendem a justificar suas escolhas pelo fato de precisarem se afirmar. Na verdade, a maioria das pessoas possui a necessidade de justificar suas escolhas. E na pluralidade das vezes isso ocorre pelo fato de quererem converter uns aos outros para o seu “lado negro da força”. Mas a pergunta que permeia este artigo é: “Por que se preocupar com programação funcional em pleno 2016?”. E a resposta é outra pergunta: “Por que não?”. O que te impede, hoje, de estudar esse paradigma e aprender seus conceitos – mesmo que, ao final, você continue se baseando no mesmo paradigma que usa hoje, utilizando as mesmas linguagens?


22 // Capa

Mas, afinal, o que é uma linguagem funcional? É mais fácil explicar o que é uma linguagem funcional pela diferença. No paradigma imperativo, usado na linguagem C, o programa desenvolvido nada mais é que uma sequência de instruções que são alocadas na memória. Por outro lado, no paradigma declarativo, no qual se encontram as linguagens funcionais,

um programa é um conjunto de definições de funções que são aplicadas a valores. No paradigma declarativo, o desenvolvedor se preocupa em declarar o que será feito, ele não especifica um método de resolução, ele não se preocupa com “como” será feito. Esse paradigma requer que o programador tenha um bom entendimento dos princípios de funcionamento de um computador, principalmente do conceito de mudanças de estado.

Imperativo x Funcional: diferenças entre os paradigmas

Imperativo Funcional Estado mutável Estado imutável Ordem é importante

Ordem NÃO é importante

NÃO é side effect free É side effect free

Exemplo de um programa em C (paradigma imperativo):

Esse programa trabalha de forma diferente. Seria algo assim: sum [1..10]

soma = 0; for (i=0; i<=10; ++i)

soma = soma + i;

sum[1..10] = sum [1,2,3,4,5,6,7,8,9,10] sum[1..10] = 1+2+3+4+5+6+7+8+9+10 sum[1..10] = 3+3+4+5+6+7+8+9+10

Esse programa básico de soma nada mais é do que uma sequência de instruções cujo resultado final é a alteração das variáveis. Exemplo de um programa em Haskell (paradigma funcional):

sum [1..10]

… sum[1..10] = 55

Ou seja, esse programa trabalha até que não haja mais forma de simplificar a expressão. Algumas linguagens que suportam melhor o paradigma funcional são: Scheme, ML, Haskell, F# e Elixir. Esta última é uma linguagem desenvolvida por um brasileiro chamado José Valim, um dos principais contribuidores


23 // Capa

do Ruby. Você pode ler um ótimo artigo sobre isso, escrito pelo próprio Valim, também nesta edição.

Lazy Evaluation:

Programação funcional – por que sim?

Tail Call Optimization: Quando um método recursivo tem como última chamada o próprio método para a recursão. Assim, o compilador “descarta” a informação e evita a sobrecarga na pilha.

Uma das vantagens de se trabalhar com o paradigma funcional é o reforço na utilização das ferramentas fundamentais para a modelagem de problemas; sendo assim, os esforços tornam-se mais rigorosos, o que acaba por facilitar a análise dos sistemas. De fato, a programação funcional preza pela aplicação de técnicas antigas e consagradas de boas práticas de codificação, tais como: DRY, Pipeline, Separation of Concerns, Thread Safety, SOLID, Design Patterns e outras. Abaixo são citados conceitos úteis que são utilizados em programação funcional. Úteis, mas não novos!

First Class Function: Não existem restrições de criação e utilização de uma função. Higher Order Function:

São funções encapsuladas, uma função que carrega um argumento que é uma função e retorna uma função.

Lexical Closures: Lexical Closures: São funções que podem se referir e alterar os valores das ligações estabelecidas por formas que textualmente incluem a definição de função da ligação. Para ficar mais claro, é possível definir uma função dentro de outra função. Single Assignment: A variável só recebe uma única atribuição de valor.

Adia a execução de uma função até que ela seja necessária.

List Comprehensions:

É a criação de uma lista baseada em listas existentes. É como uma notação de conjunto matemático. Costuma ser utilizada em linguagens como Haskell e Python.

Type Inference: É um recurso que permite ao programador não declarar variáveis do tipo estáticas. Neste caso, o compilador é o responsável por essas atribuições de acordo com o contexto do uso. Pattern Matching: Permite uma pesquisa por padrões em determinados dados. Quando você define uma função, você pode definir um código para cada padrão, desenvolvendo assim um código mais conciso e legível. Monadic Effects:

Monadic, ou mônadas, são uma ideia recorrente na computação. Caso você queira estudar isso a fundo, sugiro que primeiramente pesquise sobre um ramo da matemática chamado teoria das categorias. Mas, basicamente, elas consistem na reutilização de padrões de programas. É um padrão de design funcional que descreve a computação como uma sequência de passos. A comunidade de pesquisas em linguagens funcionais tem discutido incessantemente


24 // Capa

sobre qual a melhor maneira de manipular os efeitos (estado I/O, logging etc). Existem duas correntes principais: a que defende as linguagens funcionais puras e a que prefere as impuras. Linguagens funcionais puras devem ser livres de efeitos colaterais, e baseadas na noção matemática de que uma função consiste no mapeamento dos seus argumentos e resultados. Já as linguagens impuras compreendem que essa noção possua alguns efeitos: exceções, atribuições etc. O JavaScript Promisses e o Option Types do ML, por exemplo, são um tipo de Monads - sendo este segundo da família do Haskell Maybe Monads. Além desses dois, temos o Rust, que foi construído em torno da Option Monad. O Java 8 também implementa esse recurso, porém com o nome de Optional, assim como no Swift. Outra característica é que as linguagens funcionais são recursivas por natureza e, assim, implementam mais rapidamente o conceito de recursão. Dessa forma, elas podem ser mais úteis dependendo do contexto do seu projeto. Elas também possuem grande flexibilidade, capacidade de abstração e modularização, além, é claro, de possuírem transparência referencial.

Uma nova forma de pensar Voltando à citação que está no início deste artigo, “a mente que se abre a uma nova ideia jamais volta ao seu tamanho original”. Essa frase, de Einstein, tem se mantido verdadeira ao longo dos anos. É preciso estar aberto a novas ideias, sair da zona de conforto e enfrentar todas as dificuldades de se aprender um novo paradigma.

A discussão não acaba aqui nestas poucas linhas. Nem vai se esgotar depois de você ler os artigos do Fábio Akita e do José Valim, nas próximas páginas. É preciso muito mais que um artigo para se ter a ampla ideia do que programação funcional pode fazer por você, caso essa seja sua opção. A escolha pela utilização, ou não, é puramente sua e do problema que você necessita resolver. O interessante no estudo de novas sintaxes e paradigmas é aprender uma nova forma de se pensar. Ao fazer isso, você criará novos mindsets e poderá ter maneiras diferentes para resolver um mesmo problema. Afinal, não existe o melhor paradigma ou a melhor linguagem. O que existe é o melhor para o seu problema, para o seu projeto. Sempre que você for iniciar um projeto, pense em várias formas, “chaveie” sua mente, saia do óbvio e do diário. Não se limitar a uma linguagem ou a um paradigma é o melhor objetivo que você pode atingir. A resposta sobre o que usar depende de como você enxerga seu problema. E, como diz o Akita, preferir “um sobre o outro é negar uma longa história de realizações e pesquisas da ciência da computação”. Não se limite!

ALEX LATTARO Alex Lattaro é formado em Análise e Desenvolvimento de Sistemas pelo IFSP e trabalha como curador de conteúdo no iMasters. É desenvolvedor júnior de jogos, estuda e tem grande interesse nas áreas: Interação Humano Computador, Inteligência Artificial e Design. Também é músico, apaixonado por música, física, anime, séries e filmes. alex.lattaro@imasters.com.br


26 // Programação

Meus pensamentos sobre o modismo da programação funcional Por Fábio Akita, Co-fundador da Codeminer 42 Hoje, é unanimo que a única e melhor maneira de gerenciar o código-fonte é com o Git. Em 2009, quando ele ainda estava ganhando força, houve alguns difamadores. Alguns diziam que não iriam usar o Git porque foi escrito em C, em vez de em C++. Para isso, Linus Torvalds deu a famosa resposta (http://ow.ly/10hHjl): “*VOCÊ* está falando besteira. C++ é uma linguagem horrível. É mais horrível ainda pelo fato de que um monte de programadores desclassificados usa, até o ponto onde é muito mais fácil gerar uma porcaria total e absoluta com ela. Francamente, mesmo que a escolha de C fosse para fazer *nada* além de manter os programadores C++ fora, isso seria um grande motivo para usar C.” Até hoje, muitos ainda tentam argumentar contra os argumentos do Linus (veja aqui http://ow.ly/10hIn4). Eu sou da opinião que uma das razões por que Git e kernel do Linux são bons é exatamente por causa da escolha do C (e, para melhor ou pior, a cultura de bullying de seu ditador benfeitor, Linus). Linguagens têm recursos, elas têm antepassados, elas estão cheias de algum senso de filosofia e propósito. Por causa disso, é fácil ver o motivo de os jovens escolherem linguagens em uma tentativa de se encaixar em algum grupo. Não é tanto porque a linguagem tem algum estilo de sintaxe, ou é insanamente rápida, ou está elegantemente implementada.

Algumas pessoas gostam do Google e se sentem mais compelidas a justificar a sua escolha pelo Go. Outras gostam da Apple e se sentem mais compelidas a justificar a sua escolha por Swift ou Objective-C. Ainda algumas pessoas são naturalmente mais acadêmicas e não sentem tanto a necessidade de justificar a sua escolha pelo Haskell - que, aliás, tem um lema não-oficial de “evite o sucesso a qualquer custo” (http://ow.ly/10hIH9). Particularmente, os programadores jovens sentem a necessidade de justificar suas escolhas usando algum tipo de raciocínio lógico. Tentar explicar as escolhas de linguagem por causa de recursos é uma falácia. Você não precisa explicar por que você ouve Bruno Mars - se gosta dele, apenas ouça. Você não precisa explicar por que come comida tailandesa - se você gosta, apenas coma. É por isso que a maioria dos posts e artigos que tentam justificar a escolha de uma linguagem ou ferramenta são muito pouco confiáveis: porque eles não podem deixar de ser tendenciosos. Não há raciocínio lógico que pode inequivocamente definir que uma linguagem é a vencedora sobre outras linguagens. Qualquer linguagem que está em uso hoje tem aplicações, algumas mais que outras, claro. Mais fácil dizer que fazer, eu sei. Siga comigo. Cada nova geração se esforça para encontrar sua identidade, ela tem a necessidade


27 // Programação

de não apenas seguir o que a geração anterior deixou para trás. E nós, programadores, somos naturalmente avessos ao “legado”. Está em nosso DNA tentar reescrever a história toda vez. É fácil escrever coisas novas, mas é muito difícil fazer algo que dure. Por causa disso, muitos de nós voltamos no tempo a fim de justificar as nossas novas escolhas como “redescobertas”. Isso pode ser uma das razões pelas quais as pessoas de Lisp são tão persistentes.

O Hype • Paradigma funcional - a nova modinha entre o pessoal - não é a melhor. É apenas mais um paradigma. Eleger um sobre o outro é estar negando uma longa história de realizações e pesquisas da ciência da computação. • Por que a tendência atual em linguagens funcionais? Porque é um afastamento da geração anterior, muito atraente para os novos desenvolvedores, que tentam deixar uma marca na história. • Ela faz você se sentir especial por ser capaz de discutir sobre pureza funcional, monad versus unique e outras esquisitices. Isso é tudo que existe para a maioria das discussões.

versus unique e outras esquisitices. Isso é tudo que existe para a maioria das discussões. • Você tem a trilha de credibilidade dos ensaios de Paul Graham. • Você tem a escolha de Javascript coincidentemente ganhando força repentina e tendo alguns aspectos funcionais. • Você começa a perceber que a gestão de estado mutável gera uma série de dificuldades e torna a programação paralela difícil e, em seguida, percebe que algumas linguagens funcionais oferecem estado imutável, o que desencadeia uma epifania. • Você ouve histórias: Bank Simple usando algum Clojure (http://ow.ly/10hJCu), uma startup de machine learning baseada em Clojure, Prismatic, recebendo uma bolada na série A (http://ow.ly/10hJEn), ou a incrível história da pequena startup baseada em Erlang, WhatsApp, sendo comprada por US$ 19 bilhões (http://ow.ly/10hJNM). Como não prestar atenção?

Alguns benefícios

Por que a tendência atual em linguagens funcionais? Porque é um afastamento da geração anterior, muito atraente para os novos desenvolvedores, que tentam deixar uma marca na história.

O estilo da programação funcional, de lidar com o pipeline de transformação das coisas imutáveis sem estado compartilhado, realmente melhora a nossa maneira de pensar sobre resolução de problemas. Mas o mesmo acontece com qualquer outro paradigma de programação. A programação declarativa, por exemplo, na qual você define a lógica de cálculo sem definir um fluxo de controle detalhado levando a SQL, expressões regulares.

Ela faz você se sentir especial por ser capaz de discutir sobre pureza funcional, monad

De fato, há benefícios em tantas discussões em torno da programação funcional. No mí-


28 // Programação

nimo, a nova geração está tendo a chance de compreender conceitos antigos e realmente úteis.

O que a nova geração pode compreender ao discutir programação funcional: • First Class Functions - quando não há restrições sobre como uma função pode ser criada e usada. • Higher Order Functions - uma função que pode levar uma função como um argumento e retornar funções. • Lexical Closures ou apenas Closures - a definição é um pouco difícil, mas é geralmente quando você pode definir uma função dentro de uma função. • Single Assignment (a partir do qual você pode ter Immutability) - quando uma variável é atribuída uma vez, no máximo. • Lazy Evaluation - quando a execução é adiada até que ela seja realmente necessária. • Tail Call Optimization (Tail Recursion) - na prática, se a última expressão de uma função recursiva é ela mesma, ela pode simplesmente pular de volta para o início, em vez de criar uma nova sobrecarga de stack.

• Pattern Matching - mecanismo de envio que escolhe entre as variantes de uma função (que também é importante para a Programação Lógica e para diferenciar entre paradigmas declarativos e imperativos). • Monadic Effects - este é um dos conceitos mais difíceis de realmente entender. Linguagens dinâmicas como Ruby, Python e JavaScript já nos deixaram confortáveis com as noções de first class functions, higher order functions, closures, list comprehensions. Linguagens existentes tais como Java e C# implantaram alguns desses recursos, como closures, comprehensions. Type Inference foi rapidamente ganhando adoção, pelo menos desde 2004, quando Scala, Groovy, F# trouxeram a discussão para o mainstream. Em seguida, C# 3.0+ a adotou, e agora Rust, Swift foram projetados com isso em mente. Estamos acostumados a String Patterns por causa de expressões regulares, mas o paradigma de Pattern Matching é estranho à primeira vista. Erlang é provavelmente a linguagem mais conhecida que o usa, e agora Elixir e Rust visualizaram esse recurso e você deve começar a prestar atenção nisso.

• List Comprehensions - criação de listas com base em listas existentes. Programadores Python estão mais familiarizados com o termo, pelo menos.

Há muitos mais conceitos, mas a lista que você vê no box deve ser uma lista bem justa. No entanto, de todos os itens contidos nela, o mais difícil de entender é Monads. Um Monad pode ser definido como um padrão de design funcional para descrever uma computação como uma sequência de passos.

• Type Inferente (Hindley-Milner Type System) - na prática, permite escrever código sem ter que declarar tipos estáticos todo o tempo e deixa para o compilador inferir os tipos corretos. Dá o melhor de dois mundos - dinâmico e estático.

Linguagens funcionais puras supostamente não têm efeitos colaterais. Essa simples declaração pode estimular muitas discussões acaloradas. Você vai entrar em contato com outros conceitos, como transparência referencial (onde você pode, com segurança,


29 // Programação

“Nós, programadores, somos naturalmente avessos ao “legado”. Está em nosso DNA tentar reescrever a história toda vez. É fácil escrever coisas novas, mas é muito difícil fazer algo que dure” substituir uma expressão com o seu valor). Você provavelmente vai ouvir sobre como linguagens puramente funcionais envolvem efeitos secundários, tais como consequências I/O usando Monads, e que existem vários tipos diferentes de Monads (Identity, Array, State, Continuation etc). Independentemente do Haskell Monads e da complexidade da matemática por trás dele, você provavelmente já esbarrou em Monads de uma forma ou de outra. Podemos argumentar que o JavaScript Promises é um tipo de Monad. E você também tem a inspiração do Option Types do ML, que são da mesma família do Haskell Maybe Monads. Rust é toda construída em torno da Option Monad (também conhecida como Maybe Monad, do Haskell, mas a linguagem ML veio antes e nomeou esse padrão como ‘Option’). Até mesmo o Java 8 obteve recentemente esse novo recurso e o chamou de Optional. No Swift, ele também é chamado de Optional. É a melhor maneira que conhecemos hoje para lidar com erros, muito melhor do que lidar com retorno de códigos de erro, ou (argh) elevar exceções, ou lidar com Null. Ruby é conhecido como uma linguagem multiparadigma orientada a objetos e funcional, um amálgama entre Smalltalk e Lisp, e a próxima versão 3.0 provavelmente verá a inclusão oficial de um operando opcional

inspirado pelo método #try que já usamos para encadeamento seguro de método. E também poderemos ver strings imutáveis, tornando mais fácil a escrita de construções funcionais enquanto se torna mais eficiente para a inicialização do garbage collector.

Conclusão A programação funcional não é o fim do jogo para paradigmas de programação. É algo muito bom, e as necessidades atuais se encaixam muito bem com as técnicas acima mencionadas. Mas não se engane, temos escalado aplicações enormes que duraram anos sem características de linguagem funcional. C, C++, COBOL, ADA têm impulsionado sistemas muito grandes por décadas. É muito bom ter o funcional, mas não é absolutamente necessário tê-lo. Precisamos transformar grandes quantidades de dados em agregados mais úteis, necessitamos raciocinar sobre essas transformações um pouco melhor e sermos capazes de executar volumes de pequenas transformações em paralelo e em infraestruturas distribuídas. Técnicas funcionais devem ser pensadas para ajudar. Haskell é amplamente aclamado como a linguagem que representa os ideais da programação funcional. Mas ela foi concebida para ser uma linguagem acadêmica, uma com-


30 // Programação

pilação das melhores pesquisas no campo. Foi feita não para ser mainstream, mas para dar uma implementação para aqueles mais inclinados a ir mais fundo no desconhecido. Há muitas linguagens mais velhas que a precederam e nas quais você pode estar interessado, como ISWIM, Miranda, ML, Hope, Clean. Haskell é algo como compilar o melhor delas em um só lugar.

“Por que a tendência atual em linguagens funcionais? Porque é um afastamento da geração anterior, muito atraente para os novos desenvolvedores, que tentam deixar uma marca na história” Clojure está tentando levar esses conceitos funcionais para o mundo Java. A integração com o legado Java é uma de suas forças, mas também a fonte de suas fraquezas. Resta ver o quão longe ele irá.

Num futuro próximo, provavelmente teremos mais linguagens híbridas liderando a matilha. Go, Swift e Rust são bons exemplos de linguagens modernas e muito jovens que recebem inspiração de muitos paradigmas diferentes. Elas evitam a pureza, a fim de serem realmente acessíveis a mais desenvolvedores. A pureza acaba alienando a maioria das pessoas. Nós vamos encontrar as linguagens mais mainstream em algum lugar no meio do caminho. Nesse meio tempo, vá fundo nos conceitos de programação funcional, eles são bastante interessantes e, finalmente, hoje podemos ter aplicações mais práticas, em vez de apenas experimentação acadêmica. Mas não tente fazer disso um culto - isso não é uma religião, é apenas um pequeno aspecto do campo da ciência da computação, e você vai se beneficiar se incorporar isso a outros aspectos para ter uma imagem melhor do nosso campo. ***

Elixir é minha aposta pessoal, já que ele tem a força do Erlang, já testado em batalha na indústria. É inegavelmente um Ruby para o mundo funcional. Seu modelo é o que inspirou o que você tem hoje em Scala/Akka. Goroutines e channels do Go são algo correspondente.

Este artigo é uma tradução feita com autorização do autor. Para ler o original, acesse

Muitas outras linguagens estão recebendo uma doce máscara de funcional nos dias de hoje. JavaScript e Ruby têm algumas das características funcionais mencionadas acima. Java e C# não têm influências funcionais em seu início, por isso estão recebendo algumas características apenas para se manterem competitivas. Mas, mesmo sem ser uma linguagem funcional pura, muitas dessas características foram adaptadas e implementadas de uma forma ou de outra.

é Co-fundador da Codeminer 42, empresa de desenvolvimento de software principalmente para startups. Desde 2008 é o criador e organizador do Rubyconf Brasil, uma das maiores conferências de tecnologia da América Latina. Tem experiência de 20 anos no mercado de software, tendo passado pelo mercado de grandes agências, consultoria SAP corporativo e pelo primeiro boom de startups em 2000. @AkitaOnRails fabio.akita@codeminer42.com www.akitaonrails.com

http://ow.ly/10hIPt

FABIO AKITA


I

v O maior Marketplace da América Laana está esperando suas ideias! @MELIdevelopers

Com a API do Mercado Livre você consegue desenvolver soluções para: Publicar anúncios, gerenciar estoque, analisar o mercado, maximizar vendas, agilizar respostas e muito mais.

Beneecios que contribuem para seu sucesso! UUlize os nossos SDKs e facilite seu desenvolvimento

Construa aplicações e ganhe dinheiro

Parrcipe do programa de desenvolvedores cerrficados

Tem interesse em fazer parte da nossa comunidade? Acesse nosso site e encontre nossa documentação para ajudá-lo a realizar suas ideias. developers.mercadolivre.com

Informações sobre vagas: staffing@mercadolivre.com


32 // Programação

Elixir em tempos de microservices Por José Valim, criador da linguagem de programação Elixir, cofundador e diretor de P&D da Plataformatec Microservices têm sido um tema comum ultimamente e muitas perguntas têm surgido sobre como Elixir se encaixa em arquiteturas Microservice. Neste artigo, eu não irei focar no mérito de microservices, já que isso foi discutido por muitos à exaustão. Em particular, a posição de Martin Fowler sobre o tema se alinha bem com os meus pensamentos sobre o assunto e definitivamente vale a pena ser lido, veja aqui: http://ow.ly/10lH12 Também é válido mencionar que eu tenho visto muitas empresas perseguindo microservices porque elas não conseguem organizar grandes aplicações com o seu ferramental (linguagens e frameworks), que não fornece boas abstrações para gerenciar microservices. Então microservices são muitas vezes vistos como uma solução para estruturação de código ao impor a separação de tais preocupações. Infelizmente, a adoção prematura de microservices muitas vezes afeta negativamente a produtividade da equipe. Por isso, também é importante para linguagens e frameworks fornecerem abstrações adequadas para lidar com a complexidade do código enquanto o código base cresce.

Background

Elixir é uma linguagem de programação concorrente e distribuída que é executada no

Erlang Virtual Machine (Erlang VM), com foco em produtividade e manutenção. Antes de entrar em microservices, gostaria primeiro de argumentar por que Elixir/Erlang pode ser a melhor plataforma existente para o desenvolvimento de sistemas distribuídos (independentemente se você tem uma arquitetura de microservices ou não). A VM Erlang e sua biblioteca padrão foram projetadas pela Ericsson na década de 80 para a construção de sistemas de telecomunicação distribuídos. As decisões que eles tomaram no passado continuam a ser relevantes ainda hoje, e vamos explorar o porquê. Pelo que eu sei, Erlang é o único runtime e Virtual Machine amplamente utilizado em produção projetado desde o principio para sistemas distribuídos.

Aplicações

O runtime do Elixir tem noção de aplicações. No Elixir, o código é empacotado dentro de aplicações que: 1. são iniciadas e paradas como uma unidade. Qualquer nó Elixir (instância Virtual Machine) executa uma série de aplicações, com o Elixir em si sendo uma delas, e começar (e parar) o seu sistema é uma questão de começar todas as aplicações nela.


33 // Programação

2. proporcionam uma estrutura de diretório unificada e API de configuração. Se você já trabalhou com um aplicativo, conhece a estrutura e como configurar qualquer outro. 3. contêm sua árvore de supervisão da aplicação, com todos os processos e seu estado. Ao longo deste artigo, processos significam threads, uma execução bem leve gerenciada pela VM do Erlang. Eles são baratos para ser criados, isolados e trocam informações por meio de mensagens. O impacto das aplicações em um projeto é altamente benéfico. Isso significa que os desenvolvedores Elixir, ao escreverem aplicações, são oferecidos com uma abordagem mais explícita para: 1. como o código é iniciado e parado, já que ele é contido e isolado dentro de cada aplicação. 2. quais são os processos que fazem parte de uma aplicação e, portanto, qual é o estado da aplicação. Se você pode fazer uma introspecção na sua árvore de aplicação, você pode fazer uma introspecção em qualquer processo e, portanto, em todos os componentes que compõem a sua aplicação. 3. como os processos da aplicação irão reagir e serem afetados em caso de crashes ou quando algo dá errado. Não só isso, o ferramental em torno das aplicações é excelente. Se você tiver o Elixir instalado, abra o “iex” e digite: :observer.start(). Além de mostrar as informações e os gráficos sobre o seu nó ativo, você pode matar processos aleatórios, consultar o seu uso de memória, estado e muito mais. Quando comparado com outras linguagens, a diferença do Elixir é que aplicações e pro-

cessos lhe dão uma abstração para raciocinar sobre o seu sistema em produção. Muitas linguagens oferecem pacotes, objetos e módulos, na maior parte para a organização de código sem reflexo sobre o sistema em execução. Se você tem um atributo de classe ou um objeto singleton: como você pode raciocinar sobre o código que o manipula? Se você tem um vazamento de memória ou um gargalo, como você pode encontrar a entidade responsável por isso? Essa visibilidade é um dos principais benefícios em se construir um sistema em Elixir. Se você perguntar a qualquer pessoa que está rodando um sistema distribuído, esse é o tipo de visão que elas querem, e com Elixir você tem isso no building block.

Comunicação Ao construir um sistema distribuído, você precisa escolher um protocolo de comunicação e como os dados serão serializados. Embora existam muitas opções por aí, infelizmente um monte de desenvolvedores escolhem HTTP e JSON, que é uma combinação muito prolixa e cara para performance do que acabam se tornando chamadas RPC. Com Elixir, você já tem um protocolo de comunicação e um mecanismo de serialização fora da caixa, por meio de Distributed Erlang. Se você quer ter dois nós se comunicando uns com os outros, você só precisa dar nomes a eles - garanta que eles compartilhem o mesmo cookie secreto, e está feito. Não apenas isso. Como todos os processos Elixir se comunicam uns com os outros via message passing, o runtime fornece um recurso chamado location transparency. Isso significa que não interessa se dois processos estão no mesmo nó ou em diferentes, eles ainda serão capazes de trocar mensagens.


34 // Programação

Quebrando aplicações monolíticas Mencionei anteriormente que tenho visto muitas empresas perseguindo microservi-

ces porque elas falham em organizar o código no nível do projeto. Então, muitas vezes elas prematuramente dividem sua arquitetura em microservices, o que afeta a produtividade em curto e em longo prazo. Do artigo de Martin Fowler:

for less-complex systems, the extra baggage required to manage microservices reduces productivy as complexity kicks in, productivy starts falling rapidly the decreased coupling of microservices reduces the attenuation of productivy

Productivity Microservice Monolith

Base Complexity

Complexidade e Produtividade de monolitos e microservices No Elixir, quebrar um aplicativo grande em partes menores é mais simples do que em qualquer outro lugar, uma vez que a árvore de processo já descreve as dependências e a comunicação entre essas dependências sempre acontece de forma explícita via mensagem de passagem. Por exemplo, imagine que você tem um aplicativo chamado abc, que tem crescido muito com o tempo; você

but remember the skills of the team will outweigh any monolith/microservice choice

pode fragmentá-lo em aplicações a, b e c, extraindo sua árvore de supervisão para diferentes aplicações. Esse é um aspecto tão comum de trabalhar com projetos Elixir que a sua ferramenta de construção, chamada Mix, oferece um recurso chamado de umbrella projects, no qual você tem um projeto composto de muitas aplicações que podem depender umas das outras em qualquer forma. Umbrella projects permite compilar, testar e executar cada aplicação como uma unidade, mas também executar todas as tarefas


35 // Programação

ao mesmo tempo, se necessário. Aqui um exemplo rápido: $ mix new abc --umbrella $ cd abc/apps $ mix new a $ mix new b --sup $ mix new c --sup

O trecho acima cria um novo umbrella project, entra no seu diretório apps e cria três aplicações: a, b e c, onde os dois últimos contêm uma árvore de supervisão. Se você executar mix test na raiz do projeto abc, ele irá compilar e testar todos os projetos, mas você ainda pode ir para dentro de cada aplicação e trabalhar com elas de forma isolada. Uma vez que o aplicativo abc principal é quebrado, você também pode mover cada parte para um repositório separado se desejar, ou não. A vantagem é que os desenvolvedores são capazes de lidar com a complexidade crescente do código em passos pequenos e granulares, sem tomar grandes decisões adiantadas.

Microservices Até agora, eu não falei sobre microservices. Isso porque, até este ponto, eles realmente não importam. Você já está projetando o seu sistema em torno de processos minúsculos que são isolados e distribuídos. Pode chamá-los de nanoservices, se quiser! Não só isso, esses processos são empacotados em aplicações que os agrupam como entidades que podem ser iniciadas e interrompidas como unidade. Combinado com Distributed Erlang, se você deseja implantar suas aplicações a, b e c como [a, b] + [c] ou [a] + [b] + [c], você terá muito pouca dificulda-

de para fazer isso, devido à sua concepção inerente e comunicação integrada. Em outras palavras, você pode se concentrar em como implementar seus aplicativos com base no que está levando você a separá-los. É a complexidade do código? Você pode trabalhar com eles separadamente, mas ainda implantá-los como uma unidade. É pelo motivo de escalabilidade ou multi-tenancy? Se c requer mais instâncias ou a aplicação afeta especificamente o usuário, então é razoável isolar e implantar várias instâncias de c.

Elixir só é bom para a construção de sistemas distribuídos? Se você não estiver familiarizado com Elixir depois de ler até aqui, pode estar se perguntando: Elixir é bom apenas para a construção de sistemas distribuídos? Elixir é excelente para a construção de qualquer tipo de long running system, exatamente por causa de todas as instruções que você tem na sua aplicação, mesmo que ela seja implantada em um único nó. A linguagem também é expressiva e agradável de aprender e trabalhar (embora eu esteja certamente sendo tendencioso), com um guia de introdução e muitos recursos de aprendizagem já disponíveis. Embora exista uma curva de aprendizado, as abstrações descritas aqui são elegantes e simples, e as ferramentas fazem um excelente trabalho em guiá-lo para construir sua primeira aplicação. O comando mix new my_app --sup que nós executamos acima irá gerar uma aplicação com a sua própria árvore de processo, que você pode usar diretamente e explorar para aprender mais.


36 // Programação

Encerrando

Este artigo é uma tradução feita com autorização do autor. Para ler o original, acesse

http://ow.ly/10lCKC Espero ter demonstrado como as decisões de design feitas pelo Elixir e pela VM do Erlang fornecem uma ótima base para a construção de sistemas distribuídos. Também é emocionante ver empresas começando a desfrutar e explorar essas características por meio da linguagem de programação Elixir. Em particular, vale a pena assistir a Jamie Windsor falar no Erlang Factory 2015, e como ele foi capaz de aproveitar isso para construir uma plataforma de jogo. Finalmente, muito deste artigo concentra-se na construção de sistemas por meio de Distributed Erlang. Embora Distributed Erlang seja definitivamente a abordagem mais produtiva, não há nenhuma razão pela qual você não possa aproveitar os benefícios descritos aqui usando Elixir com outro protocolo, como Apache Thrift. E, se no final do dia, tudo o que você quer é usar HTTP e JSON, tudo bem, e bibliotecas como plug e frameworks como o Phoenix irão garantir que você será tão produtivo como em qualquer outro lugar, enquanto aprecia as características de desempenho e robustez das abstrações descritas aqui.

Artigo de Martin Fowler sobre Microservices - http://ow.ly/10lH12 Uma rápida introdução ao Elixir – How I Start:

http://howistart.org/posts/elixir/1 Introdução ao MIX e OTP Guide

http://ow.ly/10mITQ

JOSÉ VALIM é o criador da linguagem de programação Elixir e desenvolvedor do framework Phoenix. Formado em engenharia pela USP, é autor de dois livros: Programming Phoenix e Crafting Rails Applications. É cofundador e diretor de P&D da Plataformatec, consultoria especializada em Elixir e Ruby jose.valim@plataformatec.com.br | http://plataformatec.com.br


38 // Produto

Gestão de produto na prática Por Fábio Borges, CTO da Umbler Eureka! Você já passou por aquela fase inicial da ideia de negócio, acabou de criar o seu Business Model Canvas (BMC) e já sabe na teoria como viabilizar o seu futuro negócio – afinal de contas, está tudo especificado no canvas. Ok, você já tem tudo para ter sucesso. Que vida fácil e maravilhosa você tem! Só que não! Agora vamos para a parte difícil, que é fazer isso acontecer na temida vida real.

Conhecendo a sua persona Nossa persona se chama Fábio Borges, é gaúcho e tem 29 anos. Trabalha com desenvolvimento e Internet desde 2003. É um cara comum, daqueles que nas horas vagas gosta de ler, assistir a filmes e principalmente viajar. Não tem conta no Facebook porque acha que existem formas melhores de perder o seu tempo.

Agora que nós já conhecemos nossa persona, precisamos criar um produto que seja tão bom que, além de ela querer comprar, queira indicar para seus amigos. Meio difícil, não? Por isso é muito importante que você conheça muito mais intimamente as suas personas e, pelo mesmo motivo, não é raro encontrar casos de empreendedores bem-sucedidos que tiveram uma ideia de negócio partindo de um problema real que eles mesmos o tinham, e portanto, conheciam muito bem. No fim, tudo se resume a resolver as dores de uma pessoa ou empresa. Para auxiliar nessa tarefa, existem várias técnicas, mas eu particularmente recomendo o canvas da proposta de valor (strategyzer.com/canvas) e o mapa de empatia. Invista tempo nisso, é importante, você precisa entender como funciona a cabeça do seu usuário de verdade, caso contrário, você apenas resolverá superficialmente o problema dele.


39 // Produto

Minha mãe mandou eu escolher essa feature aqui, mas como eu sou teimoso... Já mapeamos todas as nossas personas de uma forma bem aprofundada com suas respectivas dores, hipóteses de analgésicos etc. Agora nós temos que priorizar o que fazer primeiro. O recurso mais valioso que nós temos é o tempo, portanto, não podemos desperdiçá-lo trabalhando na feature errada. Nossas recomendações para a priorização são: • Comece pelas features de base, aquelas que atendem a maior parte das suas personas; • Defina objetivos macro para o seu produto ou empresa e mapeie as features, priorizando-as dentro do contexto de cada objetivo; • Uma vez que você já tem uma boa parte

das features de base implementadas, pode partir para uma abordagem de priorização por persona mais estratégica ou por objetivo estratégico, atribuindo graus de importâncias como: necessária, esperada, desejada, inesperada. Normalmente, features inesperadas são as que geram aquela reação “uau!” nos usuários. Tome cuidado, porém, porque de nada vale você ter várias features inesperadas se o seu produto não tiver a grande maioria das necessárias e esperadas.

Nossa! Olha que legal isso aqui! Tão importante quanto priorizar o que será feito é a forma como será feito. É aí que entra o processo de design do produto. É ele que faz produtos surgirem do nada e dominarem um mercado muitas vezes já saturado de tanta oferta. E é nessa fase que a maioria das empresas falha, por falta de conhecimento ou de habilidades necessárias para fazer as coisas de um jeito diferente, mais inteligen-


40 // Produto

te, mais legal e melhor do que as existentes. Para essa etapa, recomendo estudar a metodologia Design Sprint criada pela Google Venture (gv.com/sprint) principalmente para a definição do design de partes arriscadas Features grandes e com alto risco: use o ciclo do Design Sprint

Features pequenas e com baixo risco: use o ciclo do Lean Startup

do produto.


41 // Produto

Uma dica aqui é realmente mensurar, porque é comum, uma vez que a feature está em produção, que ela seja esquecida e acabe gerando mais problema do que solução.

Em busca do Product Market Fit O objetivo inicial de toda startup é encontrar o Product Market Fit, ou seja, o encaixe perfeito entre a necessidade do mercado e os recursos oferecidos pelo produto em questão. Esse é um processo contínuo e vai exigir um certo tempo, muito trabalho e paciência. Para auxiliar nesse quesito, nossas recomendações práticas são: • Extraia o máximo possível de feedbacks que você conseguir. A dica, aqui, é usar alguma ferramenta de automação de marketing para automatizar a interação com os usuários. Nós fazemos isso na Umbler, usando uma ferramenta chamada Route.to, e muitas das melhorias e insights que tivemos até agora vieram de e-mails como esse; • Aproxime o time de atendimento do time de desenvolvimento, a prioridade de ambos deve ser a mesma, baseada no que foi aprendido com os feedbacks dos clientes; • Use ferramentas para compartilhar os feedbacks de forma automática com todos os membros da empresa, isso pode ser feito facilmente com o Slack e o HipChat, por exemplo; • Ponha as cartas na mesa, mostre para seus usuários quais são seus planos e o que eles preferem que seja feito antes. Para isso, use uma ferramenta como o Uservoice ou o Userreport, por meio da qual os próprios usuários podem contribuir com o seu negócio; • Use ferramentas como Inspectlet para des-

cobrir como os seus usuários estão utilizando o seu produto; • Faça calls com os seus usuários frequentemente e pergunte exatamente o que você quer saber. Às vezes, o velho e bom telefone é a melhor solução. E o mais importante: faça acontecer! Você sabe que o mérito de o seu produto ser bem-sucedido ou a culpa de não ser é apenas sua.

FÁBIO BORGES é CTO da Umbler, uma startup de cloud hosting feita para devs e agências. Trabalha com desenvolvimento desde 2003 e atualmente é o responsável pela experiência do usuário, evolução e definições do produto. fabio@umbler.com | @fabioborgesnet | http://umbler.com


Drops do mercado

43

Suas informações seguras na KingHost A garantia da segurança das informações é uma preocupação constante da KingHost. Por exemplo, você sabia que, para garantir a máxima segurança das informações hospedadas, todas as conexões com nossos serviços passam por três camadas de firewall? Além disso, utilizamos a tecnologia anti-DDoS para contenção de grandes ataques de negação de serviço. Agora estamos dando um passo além, oferecendo um recurso de segurança extra a uma ferramenta que utilizamos diariamente: o e-mail. O anti-spam Spam Experts evita o recebimento de e-mails indesejados nas caixas de entrada de nossos clientes. Com um algoritmo altamente sofisticado, alimentado por uma base de dados mundial, uma filtragem seletiva é feita, detectando e eliminando e- mails indesejados antes que eles cheguem à caixa de entrada. Para conhecer mais sobre o Spam Experts, acesse: kingho.st/spam-experts.

API Braspag oferece mais facilidade e possibilidade de aumentar a conversão

Telefonia na nuvem para o seu software de gestão

Criada como um pacote de soluções que permite o au-

A Directcall promete uma nova era para a administração de

mento da conversão, a API Braspag concentra, em um único serviço, gateway de pagamentos, gestão de recorrências, armazenamento seguro de cartões de crédito, antifraudes externos e análise comportamental via Velocity. Desenvolvida sobre pilares que envolvem integração técnica fácil e ágil, suporte para múltiplas plataformas, desempenho, segurança e disponibilidade, a API Braspag oferece um serviço simples e robusto que atende lojistas de qualquer porte ou segmento. Com ambiente Sandbox e design REST, a API Braspag possui URLs semânticas, contratos de fácil entendimento e diversos exemplos, além de fornecer mensagens objetivas sobre eventuais erros durante a integração, que pode ser testada por meio de meios de pagamento simulados e, assim, validar diversas possibilidades sem requerer contrato com adquirentes, re-

oportunidades de negócios e de atividades corporativas. Por meio de Cloud APIs de Telefonia, é possível automatizar a comunicação em qualquer CRM, RP, Helpdesk ou e-commerce e melhorar o histórico desses sistemas com informações online sobre ligações realizadas e recebidas pelos usuários, com a identificação dos clientes envolvidos, sobre SMS enviado e recebido, e sobre ligações gravadas que podem ser ouvidas num clique por gestores e encaminhadas por e-mail, dentre outros recursos focados na produtividade corporativa. A solução preserva os sistemas de telefonia dos usuários e não exige investimentos em CTI. O Salesforce é um exemplo de CRM que já liberou a solução de telefonia na nuvem da Directcall para os seus usuários.

duzindo também o número de chamados para o suporte.

Brasil é o primeiro em ranking de empreendedorismo De acordo com a mais recente pesquisa realizada pela Global Entrepreneurship Monitor feita no País, o Brasil destaca-se com a maior taxa de empreendedorismo, quase 8 pontos porcentuais à frente da China, o segundo colocado com 26,7%. Ter um negócio próprio é o terceiro maior sonho do brasileiro, atrás de comprar a casa própria e viajar. Mas não basta sonhar – é preciso se preparar para realizar um sonho. Para ajudar os empreendedores de plantão, a FIAP conta com cursos de curta duração na área de negócios e empreendedorismo, que vão desde como começar a planejar e captar recursos até negociação estratégica para executivos e empreendedores, passando por empreendedorismo para mães e como o rock pode ajudar você a empreender. Conheça os cursos SHIFT. São mais de 50 opções entre cursos presenciais e online.

ResellerClub lança novo site no Brasil A ResellerClub conta com mais de 200 mil revendedores de produtos web e 5 milhões de domínios gerenciados no mundo. E seu maior diferencial é a plataforma, possibilitando que web developers e agências digitais gerenciem seus clientes e projetos por meio de uma única interface de administração. Com o objetivo de melhorar a comunicação e o relacionamento com o mercado, a empresa lançou um novo site no Brasil, com um visual muito mais simples e intuitivo. Tudo para tornar a experiência dos revendedores ainda melhor ao contratarem e gerenciarem seus serviços de hospedagem de sites, registro de domínios, caixas de e-mail, entre outros. Para ter acesso à plataforma é simples: faça um cadastro de revendedor na ResellerClub.com.br, e compre os produtos para você ou para os seus clientes.


44 // Sr. Conteúdo

Marcas que não interagem Por Bruno Rodrigues, Consultor de Informação e Comunicação Digital

Quando surgiram as mídias sociais, as empresas finalmente tinham em mãos uma ferramenta que faria com que a fase da interação, pura e simples, fosse deixada para trás, iniciando uma nova era para a real interatividade, em que os usuários estariam em constante contato com a marca, trocando ideias, dando sugestões e - por que não? fazendo reclamações. Ao longo de anos, foi assim. Empresas, pequenas ou grandes, adentraram a social media e, cada qual a seu modo, de acordo com seus objetivos de comunicação e marketing, foi moldando a forma de se relacionar com os públicos.

lho, ou seja, atrair mais público para perfis no Facebook, no Twitter, no Instagram, passou a se apenas uma entre várias tarefas diárias na vida de um analista de mídias sociais. Afinal, agora os usuários é que procuravam suas marcas preferidas nas redes; em pouco tempo, o público havia tomado conta de todas. O que fazer com tanto público? Contato pressupõe retorno, e retorno pressupõe conhecimento de causa – em outras palavras, procurar pela resposta, pela solução, pelo que o usuário demanda. E haja equipe.

Aprendemos juntos, profissionais, usuários e marcas. Cases de sucesso foram surgindo, ao mesmo tempo em que escorregões ou erros crassos eram alardeados com a mesma velocidade de um viral – afinal, estamos na social media.

O que era sonho tornou-se pesadelo. Uma multidão de usuários ávidos por informação passou a pressionar marcas a dar retornos cada vez mais rápidos e detalhados, enquanto as agências e as empresas tentavam se virar com o que tinham.

Então, o feitiço virou contra o feiticeiro. O que antes era parte fundamental do traba-

A saída, para alguns – e a vergonha, para o mercado –, foi a criação de regras de po-


45 // Sr. Conteúdo

sicionamento nas redes, em que o atendimento às demandas pudesse, de certa maneira, ser represado. O ambiente que havia sido criado com a possibilidade infinita de contato passaria, então, a ser motivo de incômodo para várias marcas. E – impensável - não interagir era a solução. Esses perfis passariam, então, a servir de meros ‘murais’, em que usuários desavisados postariam suas questões, gerando números para os relatórios para as marcas - prova de que o trabalho estava sendo feito -, ao mesmo tempo em que esses mesmos usuários estariam sendo deixados a ver navios ao esperar por qualquer tipo de retorno. Em países em eterna crise, como o Brasil, toda desculpa é enfiada goela abaixo dos que levantam essa questão: ‘faltam recursos’, sejam humanos ou financeiros – ou os dois, na maioria das vezes, já que ambos não se separam.

outras –, capaz de gerar profundidade de contato com os usuários. Pode parecer tolo ou óbvio ressaltar este ponto, na verdade a razão de ser do uso da social media, mas não custa lembrar. Empatia - quando o público percebe que existe alguém por trás de uma marca, tudo muda. Uma empresa aqui cria voz, personalidade e características específicas, possíveis apenas nas mídias sociais. A relação passa, então, a se construir emocionalmente, como acontece em uma amizade cultivada todo dia. Dessa troca floresce confiança, admiração e compreensão. A empresa, que antes era apenas a imagem de um produto ou serviço para o usuário, transforma-se. A marca torna-se parte do círculo social – ainda que virtual – dos públicos. Uma empresa que se distancia dos usuários em seus perfis de redes perde literalmente a “voz” e muitas vezes não a recupera mais.

O que uma marca perde ao não interagir

Construção de marca - se aprendemos com os amigos no dia a dia, o mesmo acontece com as empresas que mantêm contato com seus públicos nas mídias sociais: trajetórias são corrigidas, planos são alterados, sensações são confirmadas ou descartadas. Uma marca tem na social media  um forte aliado em seu processo de amadurecimento da imagem; ignorar ou desprezar sua capacidade pode, inclusive, acelerar o processo de ‘envelhecimento’, afastando o público.

Retorno - um ‘mural’, apenas com opiniões, sugestões ou reclamações, gera termômetro, como acontece com um relatório, mas é muito pouco para se tirar de uma rede social. É apenas ao entrarmos em contato com o público, conversando com ele, que conhecemos, de fato, os porquês da aceitação de determinados produtos e da rejeição de outros. Interatividade é uma ferramenta preciosa – e barata, perto de

Modernidade – o usuário, seja qual for a idade, adora novas formas de comunicação com as marcas – afinal, são novas maneiras de aproximação na solução de problemas, e isso é o que ele mais quer. Ao colocar-se ao largo da interatividade das redes sociais, uma empresa está pondo em risco a imagem de qualidade que carrega. Se uma marca não acompanha o tempo em que vive, que outros processos ela estaria

O que uma marca perde ao jogar a tolha das mídias sociais? Haveria algo a fazer, nesse caso? Vamos lá:


46 // Sr. Conteúdo

desprezando ou até descartando? Quem sabe isso pode até se refletir na qualidade de seus produtos e serviços?

Quando não há saída e interagir torna-se um problema Escolha apenas uma rede, e concentre seus esforços nela. Não adianta sonhar com o que não é possível: abrace o mundo, mas escolha um que caiba em seus braços. É incômodo ter que abandonar uma determinada rede, mas o retorno que uma marca terá ao se dedicar ao que é possível valerá a pena. Estude, antes, onde está a maior parte do seu público, respire fundo e descarte o que não estiver em primeiro lugar da lista. É bastante provável que, a partir daí, surjam dois cenários: que não é realmente essencial a empresa estar em todas as redes (improvável, mas não impossível), e que é fundamental que ela esteja presente em todas, e então as perdas de mercado e imagem farão com que os recursos, tanto humanos como financeiros, voltem à pauta. Use outras ferramentas que não exijam esforço de retorno tão pessoal ou imediatista. Como se diz nos jogos de tabuleiro, ‘volte duas casas’: retorne ao tempo da interação do e-mail. Ruim? Não tanto quanto desistir de jogar. Não é porque você não possui, ainda que momentaneamente, condições necessárias para estar – e gerir – seus públicos nas mídias sociais que você vai jogar fora qualquer possibilidade de contato com os usuários, só porque as considera antiquadas. Em um cenário desolador, é bom lembrar que o bom e velho e-mail marketing ainda surte efeito. Há anos guardo com carinho uma frase do

roteiro inicial do filme ‘O Senhor dos Anéis – A Sociedade do Anel’, atribuída a Frodo, protagonista da história: ‘Quando nos livramos da escuridão do passado para então descansarmos no conforto de nossas vidas, às vezes esquecemos o quão caro nos custou esta paz. Por isso há um valor inestimável, de quando em quando, em olharmos, juntos, para trás’. Em suma, não importa o que sua marca tem condições de fazer nas mídias sociais, honre o que o mercado conquistou até aqui. Não foi fácil, e nada garante que será daqui em diante.

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


48 // UX

Experiência do usuário online e o déficit de atenção contemporâneo Por Vinícius Denny, marketing digital na Endurance.

Um ser humano possui um tempo de concentração médio menor do que um peixe-dourado. E isso não é só uma frase de efeito: essa estatística foi medida em um estudo feito pela Microsoft em 2014. Nosso tempo de concentração transitório hoje é de 8.25 segundos, enquanto que a de um peixe-dourado é 9. Não só isso: nos anos 2000, nossa média era de 12 segundos - 45% maior que hoje. Não é segredo que a revolução digital trouxe mudanças profundas na maneira como consumimos conteúdo. Com a transição do impresso para o conteúdo online, ficou mais fácil ser mais disperso - hiperlinks, abas, facilidade para acessar outros sites. Nos últimos anos, com a revolução mobile, isso ficou muito mais intenso. Notificações, conexão 24/7, mais opções de entretenimento e outros fatores levaram a isso. Em tempos em que tudo e todos estão disputando a atenção das pessoas, precisamos aderir a boas práticas de usabilidade para evitar o desperdício de tráfego online no nosso site.

Seja direto Você precisa dizer ao seu visitante o que ele precisa (e quer) saber e nada mais. Se tratando de web, menos é mais (conversões). Segundo um levantamento do ACM Transactions on the Web, 17% das visitas duram

menos de 4 segundos, e apenas 4% duram mais de 10 minutos. Em páginas com 111 palavras ou menos, 49% são lidas pelo visitante. Em uma página média, com 593 palavras, apenas 28% são lidas. Os visitantes gastam mais 4,4 segundos para cada 100 palavras adicionais. Mantenha o conteúdo curto e objetivo, e divida-o em mais subpáginas, se necessário.

A velocidade do seu site importa muito Estudos conduzidos pela Mozilla mostram que 32% dos visitantes vão abandonar sites lentos depois 1 a 5 segundos. A taxa de rejeição pode ser melhorada em torno de 30% com a redução do tamanho da página e com melhoria de velocidade. De acordo com o TABB Group, um segundo a mais de espera pode resultar em 11% menos pageviews e 7% de conversões perdidas. Revise o tamanho do seu conteúdo, o peso das imagens e a qualidade de sua hospedagem para verificar a velocidade do seu site. Também repita esse teste com seu celular, por meio do Wi-Fi, com o 4G e com o 3G, se possível.


49 // UX

Estrutura da informação Existem vários recursos para introduzir uma hierarquia de informação no seu site que irão facilitar para o usuário achar o que precisa. Subtítulos ajudam os usuários a ir direto para a seção com as informações que estão procurando. Organizar informações chave por tópicos (bullets) tornam-nas mais facilmente digeríveis quando comparadas às informações que estão no corpo do texto.

“De acordo com o TABB Group, um segundo a mais de espera pode resultar em 11% menos pageviews e 7% de conversões perdidas” Se o objetivo do seu site é ter uma conversão em cadastro, venda ou qualquer outra, certifique-se de que o próximo passo é claro e visível. Esse call-to-action deve estar destacado em tamanho e cor, e seu texto deve ser objetivo sobre o que irá acontecer (cadastro, compra, download etc).

Recursos audiovisuais Imagem e vídeo, entre outros recursos, são capazes de capturar a atenção dos visitantes por alguns instantes e, dessa maneira, fazê-los absorver as informações que você deseja transmitir. Vídeos com conteúdo relevante são capazes de despertar a atenção seletiva sustentada, com duração de alguns minutos (de 5 a 20 minutos).

Monitore pelo Analytics

Os principais mapas que você terá sobre o nível de atenção dos seus visitantes sobre seu site são as diversas ferramentas de Analytics disponíveis na web. Descobrindo o que seus usuários estão pesquisando para encontrar seu site, por exemplo, indica quais seções você deve destacar mais (inclusive para SEO). Comparar o tempo que você leva para ler o conteúdo do seu site com o tempo médio de permanência dos visitantes mostra se você está com muito conteúdo (caso a disparidade seja muito grande). Taxas de rejeição altas podem ser um sinal de problemas de hospedagem. Análises avançadas como track de barra de rolagem e heatmap (locais onde seus usuários mais clicam) também são insights poderosos sobre como a atenção é gasta em seu site. O nível de concentração da humanidade provavelmente será um dos maiores desafios para o futuro da Internet e das aplicações. Devemos estabelecer uma otimização contínua do nosso site para estarmos mais adaptados a essa mudança no comportamento. E parabéns por ler todo o artigo. Nos desafiadores tempos de escassez de atenção, só sobressairão aqueles que forem atentos ao máximo de detalhes.

VINÍCIUS DENNY trabalha em marketing digital na Endurance. Formado em Marketing pela USP, sempre trabalhou na área de marketing em empresas de tecnologia e internet. Programador de fim de semana, é fascinado por pela revolução nas comunicações e o impacto social da internet na humanidade. vinicius.denny@endurance.com http://endurance.com


51 // SEO

SEO do início ao fim Por Will Trannin, CEO da SEO Master

Ou porque você deve se preocupar com isso em todas as etapas da criação de um site. O desenvolvimento de um site possui algumas etapas bem definidas que precisam ser executadas para que a qualidade e o prazo do projeto sejam atendidos com satisfação. Essas etapas podem variar um pouco de uma empresa para outra, mas de maneira geral temos as seguintes etapas: • Planejamento: definição da tecnologia, cronograma e arquitetura da informação do site. • Design: design visual do novo site. • Implementação: desenvolvimento da estrutura do backend do site.

• Conteúdo: inserção das informações que o site precisa. • Migração de ambientes: a migração em si do ambiente de homologação para produção. Mas como o SEO deve estar presente na criação de um site? O SEO possui partes importantes que devem ser realizadas em cada uma das etapas. Não é adequado executar somente algumas tarefas em uma etapa e se esquecer das demais. Se isso acontecer, é bem provável que o site apresente problemas que irão provocar um grande retrabalho.

O diagrama 1 deixa claro como as etapas e o SEO se relacionam:

SEO Implementação

Planejamento

Design

Conteúdo

Migração

SEO

SEO

SEO

SEO


52 // SEO

Diagrama 1: Relação entre SEO e etapas da criação de um site Com a visão global do projeto, agora já podemos ver com detalhes as atividades de SEO em cada uma das etapas. O profissional de SEO deve fazer um relatório apresentando diversos cenários de migração e os impactos que eles podem trazer para os acessos do site. Com isso em mãos, os gestores do novo site podem tomar decisões conscientes do real impacto. As ferramentas utilizadas nessa atividade são Google Analytics e Search Console. Na arquitetura da informação, o analista SEO deve fazer uma ampla pesquisa de palavras-chave para entender a fundo como as pessoas buscam pelos produtos, serviços e/ou dúvidas relacionadas diretamente ao mercado de atuação foco do site. Com a pesquisa de palavras-chave pronta, é possível fazer a arquitetura da informação com embasamento e direcionada ao público-alvo correto. A ferramenta mais utilizada aqui é o Google Keyword Planner. Por exemplo, no mercado de viagens de ônibus, descobriremos com a pesquisa que as pessoas procuram pelos termos “passagem de ônibus” com o destino e trajeto e “rodoviárias” com o nome da rodoviária. Nesse caso, a arquitetura da informação do site deve conter uma estrutura de páginas que atendam essas pessoas.

Outro ponto nesta etapa é a definição do formato das URLs. Nesse caso, a definição logo na etapa de planejamento irá facilitar a automatização do processo de migração. Um ótimo exemplo é o padrão usado nas plataformas de e-commerce. Podemos ter, por exemplo, as URLs dos produtos com o formato “/p/NOME-DO-PRODUTO” e das categorias sendo “/c/NOME-DA-CATEGORIA”.

SEO x Design Nesta etapa, a contribuição de um profissional de SEO deve ser em apresentar as boas práticas de design que devem ser seguidas para que o site consiga ser mais facilmente indexável pelos mecanismos de busca. Isso acontece porque muitos componentes da interface gráfica de um website prejudicam a varredura do crawler do Google e demais mecanismos de busca. Ótimos exemplos são os componentes Tab e Accordion, os quais o Google sugere que não sejam utilizados para apresentar conteúdos relevantes. Isso acontece porque esses componentes “escondem” o conteúdo, e o Google entende que isso mostra que aquele conteúdo tem menor importância para o usuário. Mesmo com as boas práticas, é imprescindível que o analista SEO faça a revisão de todos os layouts desenvolvidos pela equipe de designers.


53 // SEO

SEO x Planejamento

SEO x Conteúdo

Muitas vezes, esta é a única etapa em que o analista SEO é envolvido. Por isso, vale ressaltar que a presença somente nesta etapa pode fazer com que o projeto esteja em um rumo no qual o custo de mudança seja bem elevado.

Nesta etapa, as tarefas do profissional de SEO são: definir padrão de Title e Meta Description, e direcionar a produção do conteúdo das páginas.

Os principais aspectos de análise nesta etapa são o que chamamos de fatores OnPage. Dentre os principais temos: Robots. txt, Sitemap.xml, Tempo de Carregamento, Redirects, Canonical, Paginação, Headings e Imagens. O destaque especial fica para os Redirects. Nesse caso, entenda como a criação de expressões regulares no servidor de aplicação para automatizar os redirecionamentos 301 no novo site. Essa regra tem por objetivo criar redirects 301 de todas as URLs do site antigo para o novo.

“Mesmo com as boas práticas, é imprescindível que o analista SEO faça a revisão de todos os layouts desenvolvidos pela equipe de designers” Isso é importante porque o Google e demais mecanismos de busca fornecem uma relevância e autoridade para cada URL individualmente. Além disso, eles não conseguem identificar automaticamente a mudança de URL de uma mesma página. Por exemplo, a página do produto IPhone 6 em um e-commerce mudou a URL de “www.minhaloja. com.br/p/produto?id=1234” para “www.minhaloja.com.br/p/iphone-6”. Entretanto, os mecanismos de busca precisam do redirect 301 para entender que é a mesma página.

A criação de um padrão de Title e Meta Description proporciona uma boa otimização para sites muito grandes, uma vez que a otimização individual de cada página do site não é viável no prazo de desenvolvimento. Já a produção do conteúdo precisa ser direcionada pela pesquisa de palavras-chave que foi realizada ainda na fase de planejamento. Saber quais tópicos devem ser abordados nas páginas é essencial para que o jornalista e/ou publicitário crie o conteúdo já otimizado.

SEO x Migração de ambientes Por último, temos a etapa de migração dos ambientes de homologação e produção. O caso que precisa de maior atenção


54 // SEO

é a criação de um novo site a partir de um já existente. Como comentado na seção SEO x Implementação, os redirects 301 são essenciais para que os acessos orgânicos se mantenham após a migração. Nesta etapa, é preciso revisar se a regra automatizada está funcionando e se é necessário criar redirecionamentos manuais para as exceções. O analista SEO deve se concentrar em mapear o cenário atual do site, ou seja, deve gerar relatórios das páginas indexadas (por meio da seguinte busca no Google: “site:www.dominio.com.br”), com melhores ranqueamentos (uma ótima opção para isso é o SEMRush) e com mais acessos x conversão (com o Google Analytics). Esse cenário vai ser importante após o lançamento para verificar se a migração foi bem sucedida.

Conclusão Portanto, é preciso alterar o padrão adotado na indústria de que a otimização é restrita a questões de implementação na criação de sites.

Lembre-se de que desde o planejamento, com a arquitetura da informação até a migração e com os redirecionamentos 301, o SEO precisa estar presente para que o projeto tenha sucesso em acesso e conversão.

WILL TRANNIN é CEO da SEO Master. Mestre pela PUC-Rio com ênfase em User Experience (UX), trabalha com SEO desde 2008 e tornou-se um dos maiores especialista em SEO do Brasil, principalmente no mercado de e-commerce. É o idealizador do conceito Search Experience, o qual mescla SEO e UX para aumentar as vendas dos lojistas online. will@seomaster.com.br


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


56

Drops do mercado

Opções de servidores dedicados e integração com Google Apps A Bluehost Brasil está continuamente agregando novos produtos ao seu portfólio. Precisa de uma solução de hospedagem potente e que seja completamente personalizável? Existem planos de Servidores Dedicados, com diferentes configurações para atender a diversas necessidades. Personalize com o SO que quiser e escolha o hardware que mais se adequa ao que você precisa. Caso não precise de tanto recurso ainda, existem diversas opções de planos VPS com alto nível de customização. Recentemente, a Bluehost também fez a integração da sua plataforma com o Google Apps, uma das soluções corporativas mais populares e potentes do mundo. Seus inúmeros recursos podem potencializar muito a produtividade de uma empresa, seja pequena ou grande, além de ter alto grau de compatibilidade com outras companhias.

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.

IBM Blockchain A IBM anunciou que novos serviços de Blockchain estão disponíveis no IBM Bluemix - a plataforma da companhia para criação, desenvolvimento e execução de aplicações na cloud. A partir de agora, desenvolvedores poderão criar e gerenciar uma rede blockchain para coordenar transações - por exemplo, desenvolver ativos digitais que podem ser negociados de forma rápida e segura por meio de redes de permissão, entre outras soluções que poderão contar com a tecnologia IBM

Solução para democratizar o atendimento por telefone O telefone ainda é o mais poderoso canal de atendimento

Nova extensão de domínio para e-commerce, .store começará a ser distribuída pela Radix em junho de 2016

ao cliente. E para fornecer um suporte rápido, acessível e confiável por empresas de qualquer porte, a ferramenta

A Radix, operador de registro de nomes de domínio para

Basic Voice, desenvolvida pela Zendesk, fornecedora de

várias extensões da nova geração, incluindo .site, .online,

software em nuvem para atendimento ao consumidor e

.website e .tech, está se preparando para o lançamento

gerenciamento de chamados, apresenta criação automáti-

da primeira extensão de domínio focada no mercado de

ca de tickets, histórico cross-channel completo, gravação

e-commerce: .store. O domínio .store é perfeito para todos

e transcrição das chamadas, além de warm transfer, painel

os sites e plataformas que oferecem produtos ou serviços

de controle descomplicado e linhas de telefone para liga-

por meio de venda online. De pequenos negócios locais,

ções locais. A solução é baseada em nuvem e personaliza-

passando por startups até grandes varejistas, todas es-

da de acordo com as estratégias de suporte omnichannel

sas empresas poderão encontrar o seu nome de domínio

da empresa, proporcionando produtividade no atendimen-

“www.suamarca.store”, que será o local perfeito para um

to, redução de custos com telefonia e até aumento das

site dedicado ao e-commerce, ou uma URL encurtada es-

vendas, por meio de uma conexão mais pessoal e eficiente

pecífica para sua página de destino de e-commerce dentro

com o cliente.

do seu site institucional. O domínio .store estará disponível para registro por meio de qualquer um dos provedores parceiros de registro online da Radix.


57 // Mobilidade é tudo

Aplicativos híbridos e Ionic Creator Por Ricardo Ogliari, Engenheiro Android na BTCjam

Atualmente, no mundo mobile, existem diversas maneiras de construir e distribuir uma aplicação. Nominalmente, as soluções são divididas basicamente em três tipos: aplicativos nativos, web apps e aplicativos híbridos. O primeiro caso acontece quando usamos as tecnologias disponíveis pela própria plataforma para produção da aplicação. Por exemplo, programamos em Java usando a IDE Android Studio para gerar um .apk e publicar apenas para aparelhos Android. Um web app é uma página especializada para dispositivos móveis, geralmente usando páginas responsivas e adaptativas. Por fim, aplicativos híbridos são construídos com tecnologia web e o trio de ferro (HTML5, JavaScript e CSS3) e, posteriormente, são gerados os projetos nativos para cada plataforma. Cada uma das soluções tem seus pontos positivos e negativos, e não cabe a este pequeno artigo discuti-los. Hoje focaremos em aplicativos híbridos e, mais especificamente, em um dos inúmeros ótimos frameworks disponíveis gratuitamente na Internet: o Ionic. Mas vamos um pouco mais além e falar aqui sobre o Ionic Creator, uma ferramenta online criada pelo Ionic para construção online e drag-and-drop de aplicativos híbridos.

Instalação Por ser basicamente um gerador de aplicações seguindo a arquitetura Ionic, é impres-

cindível a instalação do Ionic. Para tanto, existem alguns passos a serem seguidos: • Caso seu computador ainda não possua, instale o Node.js. Uma das opções existentes é entrar diretamente no http://node.org e baixar o instalador; • Caso seu computador ainda não possua, instalar o Ionic. A documentação do framework é muito feliz neste ponto, fornecendo uma página com um passo a passo da instalação e criação do primeiro aplicativo, tudo via linha de comando. Link: http://ionicframework.com/getting-started/ Depois que o Node.js estiver instalado, basta abrir o terminal de comandos e digitar a linha abaixo:

npm install -g cordova ionic Agora que o ambiente Ionic está configurado na máquina local, vamos à web. A página do Ionic Creator é http://creator.ionic.io Ao entrar na página, o usuário precisa criar seu usuário e depois é encaminhado para a página principal, onde existe um botão para criar um novo projeto, localizado no canto superior direito. Ao clicar nesse botão, um wizard de novo projeto é apresentado. Você terá um campo que nomeia o projeto e, em seguida, os tipos de projetos que podem ser criados


58 // Mobilidade é tudo

- estes são templates que já preconfiguram o comportamento da aplicação em termos de layout. Depois de clicar no botão “Create Project”, localizado no canto inferior direito da tela, o usuário é levado para a página do projeto, onde é possível desenvolver a aplicação com drag-and-drop. No lado esquerdo, na parte superior, você verá as páginas e os controladores delas. No caso de escolher o template de tabs, existirá um Tabs Controller, por exemplo. Podemos editar cada página separadamente. No mesmo lado esquerdo, mas na parte inferior, estão os componente de UI disponíveis. Basta clicar e arrastá-los até a página. Simples assim. No lado direito, temos as propriedades de cada componente. Nesse caso, o toggle button está selecionado e podemos mudar seu título, seu nome e seu estilo, além de alterar seu comportamento padrão para checado ou não checado. Na barra superior, temos algumas opções úteis. No centro, há uma opção já selecionada, com uma sombra azul. Ela significa a parte de desenvolvimento. O ícone de lado abre um preview da aplicação. No canto superior direito, existem as opções export, share, tutorial videos e menu de usuário. Vamos nos focar no mais importante para este artigo, o export. Ao clicar nele, um novo wizard é mostrado. As duas primeiras (Ionic Cli e Zip File) são gratuitas. Já o package e o creator app precisam de uma assinatura de conta. Porém, esses dois passos podem ser feitos no Ionic que foi configurado no seu computador. Ao clicar no Ionic Cli, são mostradas duas linhas de comando que devem ser copiadas no seu terminal de comando.

Como já possuímos a instalação do Ionic no computador, basta copiar e colar no seu terminal de comandos a linha ionic start… Porém, antes de fazer esse procedimento, é necessário digitar a seguinte linha de comando no seu terminal:

ionic login Será requisitado um usuário e uma senha. Digite os valores usados na criação da conta no Ionic Creator da web. Pronto, agora sim. Se tudo deu certo, uma pasta será criada com o [appName] informado no comando ionic start. E seu projeto Ionic já está pronto para ser construído nas plataformas alvo e distribuído. Para tanto, basta entrar na pasta do projeto e digitar a sequência de comandos abaixo (supondo que seu alvo seja iOS):

ionic platform add ios ionic build ios O leitor deve ter percebido o ganho de produtividade para aplicativos híbridos com o Ionic Creator. Agora basta colocar a criatividade em ação e encher a lojas online de produtos para nossos usuários!

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


60 // Marketing Digital

A exposição da marca na nova era da Internet Por Lenold Sequeira Vaz, Gerente de Marketing da Radix

A exposição da marca, ou branding, de uma nova empresa ou projeto pode ser um processo desnecessariamente doloroso. Um dos primeiros passos para o início de um novo negócio ou projeto é a procura de um nome de domínio para a empresa (na esperança de que esteja disponível).  Muitas vezes, essa etapa inicial pode gerar frustração, seja pelo fato de o domínio já estar sendo usado por alguém ou, pior ainda, por ter que desembolsar uma alta quantia para comprar esse domínio de um especulador de domínios na Web, alguém que registra domínios apenas para revender posteriormente cobrando caro. Pelo menos era assim que acontecia até há pouco tempo, quando registrar um domínio significava procurar o nome mais próximo disponível em uma extensão como .com, .net ou .com.br. Isso frequentemente levava a nomes de domínio longos, complicados ou compostos, perdendo-se a associação direta com a marca, empresa ou produto que ele supostamente deveria promover. O lançamento de uma nova geração de extensões de domínio, que começou em 2015, veio para alterar completamente essa perspectiva, e os empreendedores de todo o mundo estão aderindo cada vez mais a essa tendência.  Essas novas extensões têm muitas vantagens que as tradicionais não possuem, e ajudam a criar uma marca para o seu negócio com um domínio de mais impacto.

O nome de domínio ideal A primeira e mais importante vantagem propiciada por essas novas extensões de domínio é que elas apresentam uma infinidade de nomes de alta qualidade disponíveis, que não mais estão disponíveis nas extensões de domínio tradicionais, como com.br, .com ou .net. Você já tentou registrar  www.suamarca.com e acabou por ficar com www.seu-nomedemarca-comprido.com? Com as novas extensões de domínio, você não precisa mais comprometer o nome escolhido para o seu domínio, e pode encontrar ótimos nomes como  www.suamarca. online e/ou www.suamarca.site.

Facilidade junto a buscadores Não importa quão bem você desenvolve a sua identidade de marca. É uma pena se o seu potencial cliente e consumidor final não a virem. Encontrar um bom nome


61 // Marketing Digital

de domínio com as palavras-chave exatas é quase impossível. Empresas como  www.impact.tech e www.rainer.online estão utilizando novos domínios com esse objetivo, para ganhar força nos resultados de busca na Internet e, consequentemente, aumentar a visibilidade das suas marcas. Os estudos têm demonstrado que as novas extensões de domínio são tratadas como as tradicionais pelos buscadores, e poderão até mesmo gerar um impacto positivo nas taxas de CPC médio, em comparação com os domínios tradicionais correspondentes. Um estudo realizado pela consultoria de SEO Globerunner (disponível em http://ow.ly/ZU52T ) , sediada nos EUA,  abordou a diferença entre um .com e um domínio .diamonds em resultados de busca, e demostrou que investir em publicidade online para o website na nova extensão de domínio .diamonds poderia custar menos e converteria quase o mesmo que o .com correspondente.

Nomes criativos e de impacto As novas extensões de domínio fazem com que seja possível criar nomes chamativos, de impacto e que, acima de tudo, fazem muito sentido para uma empresa ou campanha. O

McDonalds

utilizou

recentemente

www.bigmac.rocks para uma campanha publicitária na Áustria, que pode ser vista em vários pontos de venda em todo o País, embora o domínio bigmacrocks.com estivesse disponível. A nova extensão .rocks chamava a atenção com mais força do que o tradicional domínio .com. Outro ótimo exemplo é  www.buzzi.space, uma empresa ímpar, única, que trabalha para tornar o nosso dia a dia melhor, criando

mobiliário inovador que combina a estética com a redução de ruído.

Localização Essas extensões também podem ajudar as empresas de uma localidade específica a se destacarem e serem identificadas pela comunidade internacional. Muitas cidades no mundo criaram extensões de domínio dedicadas para elas.  Portanto, se você é um negócio no Rio de Janeiro, a extensão .rio pode ser perfeita para você.  Essas extensões que representam localidades têm tido uma enorme popularidade entre os moradores e os empreendedores dessas cidades, com milhares de pessoas e negócios registrando domínios em extensões como .nyc, .london, .berlin, .paris, entre outros.

Categorização e credibilidade instantâneas Até recentemente, os endereços da Web não tinham como propriedade principal categorizar o seu negócio em segmentos relevantes. Com a nova geração de extensões de domínios, que trouxe mais de 500 novas extensões, a Internet brevemente se tornará mais fácil de navegar.  Os websites com extensões de domínio específicas associadas ao setor de uso do conteúdo ou da empresa definem e indicam claramente a sua finalidade.  Seja ele um website de jornalismo como,  www.freedom.press, ou um relacionado com assunto de tecnologia, como  www.cta.tech, o usuário saberá exatamente o que esperar do site só de olhar para a URL. Todos esses aspectos se tornam vantagens


62 // Marketing Digital

que jogam pesadamente a favor do uso das novas extensões de domínio. Milhares de empreendedores, startups e negócios em todo o mundo estão rapidamente percebendo os benefícios que podem ser obtidos com essas extensões, assim como alguns gigantes como Alphabet (a empresa-mãe do Google); e não falta muito para que seja natural a sua adoção e utilização de uma forma mais generalizada na Internet global. Chegou finalmente a era da nova geração de extensões de domínio, e vamos assistir a uma completa transformação na forma como as empresas atuam para o desenvolvimento das suas identidades online.

LENOLD SEQUEIRA VAZ é responsável por liderar todas as iniciativas de marketing da Radix, um operador de registro global líder no setor de nomes de domínio. Anteriormente, ocupou várias posições de marketing e branding em empresas de tecnologia, desde startups até uma das maiores empresas FinTech no Sudeste Asiático. Com mais de 6 anos de experiência em marketing digital e atuação internacional, Lenold tem por objetivo ajudar as organizações a desenvolver uma conexão de relevância com seu público-alvo. https://in.linkedin.com/in/lenoldvaz


63 // Banco de Dados

O futuro do banco de dados de cliente é não ter uma chave única para o cliente Por Mariano Gomide de Faria, coCEO da VTEX

Um banco de dados de clientes (base de um sistema de CRM) em uma empresa “multichannel” é muito difícil de ser construído. Ou melhor, difícil de ser sustentado. Por quê? Porque as chaves de identificação dos distintos canais são diferentes. No televendas, a chave natural é o telefone. No e-commerce, a chave natural é o e-mail. Na loja, a chave natural é a identidade. Como juntar as informações de três canais com três chaves diferentes? A solução até agora encontrada é criar instrumentos de um cadastro único do cliente, com uma chave concatenada. Pois bem, não é bem assim. Neste artigo, proponho uma provocação uma provocação ainda não-científica, pois não tenho provas de que ela funciona. O problema de ter um banco com os paradigmas de um banco relacional é que partimos do princípio de que cada linha do banco é um cliente. Ou seja, a conclusão natural é dificultar a interface de autenticação para que seja possível inserir os dados de transação (venda, atendimento etc.) relacionados a essa linha. O que ocorre quando minha mulher compra, com meu cartão de crédito, uma compra realizada pelo meu filho, de um brinquedo? Em que linha colocar essa transação? Pro-

vavelmente será colocada na linha da minha mulher. Mas veja, na compra existem três papeis. Eu os chamo assim: Demanda, Executor e Pagador. Nesse caso, minha mulher é, naturalmente, o Executor. Ou seja, essa transação só irá influenciar os sistemas de BI, recomendação e atendimento da minha mulher. Coitado do meu filho. Ele não tem histórico! Ele não é ninguém aos olhos do banco. Brincadeira à parte, o modelo de gestão dos bancos atualmente ignora o fato de que o cliente não é mais uma única “persona”. Como os agentes de negócio de tecnologia estão tratando o tema? Estão relacionando pessoas, fazendo a construção natural da relação entre elas. Porém, essa tarefa é quase impossível de ser feita. As pessoas não fornecem essas informações. Nem o poderoso Facebook consegue ter esses dados com exatidão. Eu não concordo com esse approach, pois é um factóide se considerado o time to market que as soluções de data reaction têm que ser implementadas hoje em dia.

Então, qual é a minha proposta? Proponho um banco de dados de consumi-


64 // Banco de Dados

dores que não possua linha de cliente. Um banco não relacional que seja baseado em 5 entidades de dados: cartão, identidade, endereço, e-mail e telefone, no qual não importa a interface (canal) de entrada do transacional, nem sua natureza (pedido, atendimento, evento de atraso, fraude, pagamento). O que importa são que tags (referente a essas 5 entidades) estão presentes em cada transação. O conceito é pontuar as tags ao digerir cada transação. Ou seja, a compra do brinquedo do meu filho pontuaria o CPF da minha mulher, o e-mail do meu filho e o meu cartão de crédito. Na verdade, como essas entidades não estão relacionadas a cliente, a frase correta seria: “Ou seja, a compra do brinquedo do meu filho pontuaria o CPF X, o e-mail Y e o cartão de crédito Z. Não importa a quem eles pertencem”.

O que isso melhora? • Para fazer a digestão de base e união de base, não é necessário fazer “limpeza de dados”. Limpeza esta que se tornava impossível de realizar, pois as chaves únicas apareciam em vários conjuntos de transações com diferentes unique key. Ou seja, a solução das empresas de capturar o histórico do varejo físico nesse conceito torna-se possível. • Melhor, pois os sistemas de BI engajarão os dados do “Contexto”. Se em uma compra do mundo físico eu tiver os dados de CPF X e um Cartão Y, podemos engajar upselling unindo as tags pontuadas em cada entidade do contexto. • A união de dados de consumo de mesmo contexto aparece naturalmente, não importa a relação das pessoas. Exemplo: se eu comprar no canal online e usar o endereço da minha casa, o sistema poderá engajar os dados de conhecimento dos meus filhos, minha mulher etc. Exemplo: Se o meu ende-

reço estiver tagueado com “endereço prejudicado com atrasado” porque minha mulher uma vez comprou na loja e esta atrasou a entrega, quando eu comprar, o sistema poderá reagir rápido e dizer que nesta vez será diferente da última que foi enviado para o mesmo endereço. Afinal, as famílias se falam. Se uma loja atrasou a entrega de minha mulher, tenha certeza, ela vai reclamar comigo, que trabalho com e-commerce. Poderia enumerar aqui mais de 20 motivos de porquê essa estrutura de tags e contextos pode ser o futuro de um banco não relacional que captura os dados de consumidores. O banco de dados relacional com estrutura de cliente por linha com chave dura está com os dias contados. Entendo que o que proponho aqui é muito difícil de conceber atualmente. Além dos aspectos técnicos de se fazer o que propus, existem implicações diversas, como controle de privacidade das informações. No entanto, como disse, isso tudo é uma provocação. Não quero, aqui nestas linhas, trazer uma solução para o meu problema. Antes disso, proponho que você, desenvolvedor, consiga pensar além do que existe atualmente e atingir um novo patamar em termos de bancos de dados para operações de varejo multicanal.

MARIANO GOMIDE DE FARIA é Engenheiro Mecânico formado pela Universidade Federal do Rio de Janeiro. No ano 2000 deixou o mestrado em Engenharia Estatística na PUC e o trabalho no Banco Icatu para fundar a VTEX junto a Geraldo Thomaz. Apaixonado por pesca submarina, dedica-se a liderar a área de negócios da VTEX onde atua como coCEO. mariano@vtex.com | vtex.com


65 // Código Livre

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

Unhosted

Dogfeed

Unhosted apps são aplicativos web que têm como objetivo “libertar o usuário do monopólio das plataformas web 2.0”. Sendo assim, não enviam seus dados de volta para um servidor remoto. O processamento se dá todo no lado do cliente, e os dados ficam armazenados no próprio navegador ou em um serviço de posse do próprio usuário. Saiba mais em http://unhosted.org/

Você foi um dos usuários que choraram quando o Google descontinuou o Reader? Agora é possível ler todos os seus feeds RSS com total privacidade e ainda sincronizar as diferentes instâncias com um storage remoto. https://dogfeed.5apps.com

Strut Que tal ter sua própria versão do PowerPoint, mas feito em HTML5? O projeto é na verdade uma interface gráfica para criação de conteúdo por meio de _impress.js_ e _bespoke.js_, duas bibliotecas JavaScript utilizadas pelo Strut. Além de interessante, torna brincadeira de criança disponibilizar os slides da sua palestra na rede. https://github.com/tantaman/Strut

Cloudwall.me Trata-se de um “sistema operacional” para aplicações web sem backend. Uma vez abertos a partir de arquivos estáticos, as aplicações e os documentos não precisam mais de conexão e podem ser utilizados offline. É possível ainda sincronizar o armazenamento interno de diferentes instâncias por meio de um CouchDB. http://cloudwall.me

svg-edit Como o próprio nome sugere, trata-se de um editor de arquivos vetoriais. Apesar de simples, é possível criar, abrir, editar e salvar arquivos em SVG e ainda exportar os desenhos para PNG, direto do navegador. https://svg-edit.5apps.com

gHost Segundo o autor, trata-se de um experimento em HTML5, CSS3 e jQuery que utiliza _WebRTC_ e _remoteStorage_ para, respectivamente, capturar o fluxo da webcam sem o uso de plugins e hospedar as imagens tiradas. https://ghost.5apps.com/

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


Drops do mercado

67

MundiPagg facilita a vida dos desenvolvedores disponibilizando SDKs Com o objetivo de facilitar ainda mais integração ao sistema, criando novas ferramentas para descomplicar a vida dos desenvolvedores, a MundiPagg, único gateway de pagamento com ferramentas inovadoras capazes de multiplicar a taxa de conversão para transações online, disponibiliza SDKs em Ruby, .Net, PHP, Java e Python (docs.mundipagg.com). Totalmente open source e aberto para sugestões, contribuições e pull-requests da comunidade, o sistema da MundiPagg tem duas maneiras de integração. A primeira é realizada diretamente sem escalas. Já a outra é feita por meio do MundiCheckout, ambiente seguro para capturar as transações. Em breve, a empresa simplificará ainda mais essa integração com a adição de outras funcionalidades da ferramenta MundiCheckout nas mesmas SDKs do gateway. Com isso, as opções de integração direta com o dispositivo ou com o ambiente transparente do Checkout estarão disponíveis em uma só solução.

Adaptworks comemora mais de 20 mil alunos treinados em métodos ágeis A Adaptworks, especializada em treinamento e coaching em métodos ágeis, está comemorando a marca de 20 mil alunos formados em seus treinamentos, desde 2009, quando foi fundada. O altíssimo nível técnico dos instrutores e o pioneirismo em assuntos mais alinhados à transformação ágil das empresas são os grandes diferenciais que contribuíram para consolidar a companhia nesse mercado. Hoje, é considerada uma referência no ensino e na consultoria voltados para métodos ágeis. A unidade de treinamentos da Adaptworks capacita e conduz os alunos na adoção e na adaptação cultural quanto às práticas ágeis, para que eles alcancem melhores resultados em seus projetos. Com ensino diferenciado, que engloba conteúdo didático a dinâmicas e atividades em grupo, os alunos são imersos em diversas experiências reais sobre gerenciamento ágil de projetos, o que acelera o aprendizado e a aplicação dos conceitos no mundo real.

PrimeBuilder Store: desenvolvedor que utilizar a plataforma terá ganhos ainda maiores Com capacidade de gerir procedimentos de alta complexidade de maneira ágil e padronizada, os recursos desenvolvidos por meio do PrimeBuilder proporcionam diversos benefícios, como aumento de produtividade das atividades externas, maior satisfação dos clientes externos e internos quanto ao tempo de resposta e qualidade das informações, diminuição de perdas com a antecipação de problemas, redução significativa de gastos, manutenção e BackOffice, aumento das tomadas de decisão em tempo real e maior controle na logística de produtos. Consequentemente, esses resultados implicam diretamente um aumento do faturamento e redução de custos. 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. Inscreva-se em store.primebuilder.com.br

Stone lança novo portal para desenvolvedores A Stone, adquirente de cartões de crédito e débito, lança no segundo semestre nova versão de seu portal com mais funcionalidades para os desenvolvedores. Uma das principais novidades é o cadastro do profissional dentro da plataforma para agilizar o processo. Antes, o interessado em criar algo com a tecnologia da Stone deveria entrar em contato prévio com a empresa. Outra solução é o envio de chaves para testes no ambiente de desenvolvimento, permitindo ao desenvolvedor criar livremente dentro da plataforma. Além disso, todas as integrações disponíveis estarão no portal, com exemplos de utilização de cada uma. “A ideia é que os programadores já visualizem o código pronto e que possam usar de acordo com as suas necessidades, sem precisar recorrer ao manual”, afirma Gabriel Vieira, do time de integração da Stone. O Bulletin de atualizações de versões de integração é outra novidade para informar mudanças e atualizações do sistema.

Planos de hospedagem e Jelastic Cloud da Locaweb já contam com PHP7 Uma das linguagens de programação mais utilizadas e reconhecidas, o PHP significa originalmente “Personal Home Page”, embora recentemente tenha alterado esse contexto para “Hypertext Preprocessor”. A versão 7 da linguagem já está disponível em todos os planos de Hospedagem de sites da Locaweb, que contam com sites, espaço em disco, transferência e bancos de dados ilimitados, ou seja, o melhor custo-benefício do mercado. Essa nova versão da linguagem traz grandes ganhos de performance e maturidade ao projeto, que podem ser notadas pela nova hierarquia de exceções, remoção das tags de abertura, tags alternativas de abertura e fechamento, agrupamento de classes incluídas com “use”, operador de Divisão de Inteiros, classes anônimas e muito mais. Além da Hospedagem de sites, o PHP7 está disponível no Jelastic Cloud, a plataforma on demand com escalabilidade automática que garante mais autonomia ao desenvolvedor.


68 // Marketing

Automação de marketing: um desafio de tecnologia e pessoas Por Marcelo Varon, Gerente Geral de Marketing e vendas do UOL HOST

Atrair potenciais clientes, gerar oportunidades para a área comercial, vender. Fazer isso, hoje, exige um esforço concatenado de tecnologia e pessoas. Se no passado essas tarefas podiam ser vistas como atribuições exclusivas (ou prioritárias) de profissionais das áreas de marketing e vendas, atualmente a tecnologia tem um papel crucial no ciclo de vendas de empresas que atuam na Internet. As ferramentas de automação de marketing vêm se tornando peças fundamentais para trazer mais eficiência e escalabilidade aos esforços comerciais de uma empresa. Com elas, é possível automatizar funções e tarefas que antes eram desempenhadas por pessoas, como gerar oportunidades para a área de vendas, filtrar os prospects de acordo com a etapa em que se encontram no processo de compra, fazer contato com potenciais clientes e enviar e-mails de follow-up para manter esses leads aquecidos. Há diversos softwares no mercado que entram nessa categoria, com funções variadas. Mas, em linhas gerais, soluções de automação de marketing incluem envios de e-mail marketing com base em regras criadas para réguas de relacionamento totalmente customizáveis pelo usuário, nutrição de leads automatizada, qualificação de leads, disparo dinâmico de mensagens de alerta, ferra-

mentas de criação de formulários e landing pages, segmentação de lista de contatos, rastreamento de atividades dos leads no website e nos e-mails, rastreamento de campanhas e geração de relatórios de atividades dos leads, resultados e ROI. Além de alavancar a geração de demanda e o gerenciamento de leads, essas ferramentas otimizam o processo de vendas, economizando tempo e, consequentemente, dinheiro. Também permitem identificar mais facilmente quais são os “leads quentes” e focar seus esforços neles. Como resultado, empresas que adotam essas tecnologias geram até 50% mais vendas a um custo 33% menor, segundo a consultoria Forrester Research.

“Quem trabalha com desenvolvimento e administração de sites, cada vez mais, vai ver seu trabalho inserido dentro do ecossistema de automação de marketing. Por isso, é fundamental entendê-lo”


69 // Marketing

Muita gente se pergunta: não seria essa a função do CRM? Na verdade, uma ferramenta de CRM e uma de automação se complementam e funcionam muito melhor juntas. Enquanto o CRM acompanha todo processo de venda, desde a conversão de um lead até o fechamento de um contrato, a automação alimenta os leads com informações a fim de educá-los para o momento da compra. Outra diferença entre os dois conceitos é que o CRM já possui um mercado bem consolidado, uma vez que as empresas já entenderam a importância desse sistema. Por outro lado, a automação ainda é ignorada por boa parte das empresas mundo afora. Segundo levantamento da VentureBeat, portal de notícias de tecnologia, apenas 4% das empresas norte-americanas com 20 ou mais funcionários investem em software de automação de marketing. Aliás, a automação de marketing não só deve se integrar com o CRM, mas também com diversas outras áreas da empresa. Para funcionar bem, o software tem de ser integrado ao site, à base de e-mails e ao checkout (caso a empresa venda online). Se todos esses elementos não se conectarem adequadamente, o processo não vai fluir e as vendas não vão acontecer. Logo, um bom projeto de automação de marketing exige envolvimento total da área de tecnologia. Quem trabalha com desenvolvimento e administração de sites, cada vez mais, vai ver seu trabalho inserido dentro desses complexos ecossistemas. Por isso, é fundamental entendê-los. Mas o desafio não acaba aí. Por trás de uma boa solução de automação de marketing devem estar as decisões estratégicas das pessoas. Sem esse trabalho integrado, os resultados não sairão como o desejado.

O processo de nutrição de um lead começa por entender quem é ele e em que estágio do funil de vendas se encontra. Ela quer mais informações sobre os benefícios de determinado produto ou serviço? Ela está apenas fazendo uma pesquisa de preço? Ou ela se encontra em um estágio mais avançado e já quer logo comprar determinado produto ou serviço? Perceba que cada situação demanda uma postura diferente e respostas mais específicas. Não seguir uma padronização na abordagem de cada (potencial) cliente pode atrair muitos leads frios, ou seja, pessoas que não vão adquirir seu produto ou serviço de fato. E, pior, essa falta de gestão apropriada de leads pode espantar quem realmente está próximo da compra. Esse é apenas um exemplo de como uma boa estratégia de marketing e vendas é resultado de um esforço conjunto de pessoas e tecnologia trabalhando para um objetivo em comum: vender mais e melhor. E quem encontrar esse equilíbrio sairá na frente da concorrência.

MARCELO VARON possui mais de 10 anos de experiência no mundo digital e atualmente é o Gerente Geral de Marketing e vendas do UOL HOST, divisão do Grupo UOL especializada em pequenas e médias empresas que queiram entrar e crescer no mundo online. uolhost.com.br


Drops do mercado

71

Open Platform MercadoLivre ultrapassa a marca de 100 mil aplicações

UOL Host lança o Painel do Desenvolvedor

Desde 2012, quando o Mercado Livre tornou públicas

O Painel do Desenvolvedor do UOL Host é uma plataforma

suas APIs, centenas de desenvolvedores independen-

que permite aos programadores gerenciar os projetos de

tes passaram a criar novas aplicações e funcionalidades

diversos clientes num único ambiente, além de poder abrir

com foco na experiência dos milhares de compradores e

e acompanhar chamados de forma independente com seu

vendedores que utilizam o Marketplace e as demais plata-

próprio usuário e senha. Com o Painel, o desenvolvedor

formas tecnológicas oferecidas pelo Mercado Livre. Atual-

pode solicitar acesso ao cliente, centralizar em um único

mente, já são mais de 100 mil aplicações desenvolvidas.

lugar o controle de todos os seus projetos, gerenciar os

Esse modelo Open Platform (plataforma aberta) também

produtos compartilhados e consultar o histórico e o regis-

contribui para o empreendedorismo e a monetização do

tro de atividades a qualquer momento. Com isso, o cliente

setor de tecnologia para o e-commerce. Como parte da

tem muito mais segurança e privacidade, pois não precisa

estratégia de apoio a desenvolvedores independentes, o

compartilhar seu usuário e senha com seu programador.

Meli Fund, um fundo no valor de US$ 10 milhões, apoia as

Para saber mais, acesse uolhost.com.br/paineldev

startups que desenvolverem as melhores soluções a partir das APIs, voltadas para as plataformas do Mercado Livre. Mais informações em developers.mercadolibre.com

Admatic apresenta ao mercado sua nova integração via API Agora, e-commerces e agências que utilizam o software de gestão para marketing de performance da Admatic, e que fazem ações junto a diferentes canais de marketing, contam com a integração via API, que permite fazer alterações de itens específicos da oferta com mais rapidez e agilidade. No Buscapé, essa nova integração permite a opção pelo modelo de pagamento das campanhas por meio de CPA (BP+), disponível apenas para aqueles que estão conectados via API. A integração é feita de forma bem simples: basta o cliente Admatic gerar o token de acesso para a API na central de negócio do comparador, cadastrá-lo nas configurações do software e sincronizar os dados.

iugu lança ferramenta de inteligência financeira

Umbler comemora um ano planejando expansão internacional e Node.js

Além de oferecer uma infraestrutura financeira completa

A Umbler, startup de Cloud Hosting, comemorou em abril

para empresas do modelo SaaS, marketplaces, aplica-

um ano no ar, marcado pelo desenvolvimento de recur-

tivos móveis e e-commerces, a iugu está lançando uma

sos voltados para facilitar a vida de desenvolvedores e

plataforma de business intelligence que permite o acom-

agências. Entre as principais features lançadas em 2016

panhamento de métricas importantes para a evolução de

estão: deploy de sites via GitHub e BitBucket; add-ons de

um negócio. O iuguBI disponibiliza quase 20 gráficos que

CloudFlare e NewRelic; PHP 7; Phalcon PHP; suporte para

mostram a evolução de métricas como MRR (receita re-

PHP-CLI, Laravel e Composer; várias novas extensões de

corrente mensal), ARPU (receita média por usuário) e CLV

PHP; recursos para a plataforma de e-mail e programa de

(valor do ciclo de vida do cliente), incluindo uma Análise

afiliados para agências e consultores de TI. Contando com

Cohort detalhada da retenção e do churn de consumido-

o feedback dos clientes que testam a plataforma e rece-

res. A ideia é que as empresas possam tomar decisões

bem até R$ 100,00 para hospedar sites e-mails, a Umbler,

mais eficientes com base nessas métricas, que estão em

nos próximos meses, pretende lançar mais recursos, entre

alta e têm se tornado o foco de fundos de investimentos

eles: API REST; mais uma opção de plataforma de e-mails;

quando buscam novos empreendimentos. A fase de testes

expansão para a Amércia Latina e o esperado Node.js “em

do iuguBI foi realizada durante fevereiro e o início de março

uma nova versão da arquitetura da nossa plataforma de

com alguns dos mais de 600 clientes da iugu, que elogia-

hospedagem baseada em docker”, explica Fábio Borges,

ram a ferramenta e contribuíram para sua melhoria com

CTO da empresa.

centenas de feedbacks.


72 // 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

7Masters 2016 Em fevereiro o iMasters começou mais um ciclo 7Masters. A primeira edição foi sobre Design Thinking, e a segunda, em março, sobre ReactJS. Em abril foi a vez de Web Payments. O iMasters Lab ficou lotado em todas as edições e a promessa é de um ano cheio de discussões nos temas propostos. A programação para 2016 inclui 3D Printing, Node.js, DevOps, Game Dev, entre outros. Você pode conferir a agenda completa e as talks das edições passadas em http://setemasters.imasters.com.br

Mulheres em Sorocaba Depois de um primeiro encontro virtual, via hangouts, o Women Techmakers by GDG Sorocaba realizou seu primeiro encontro presencial, a Faculdade de Engenharia de Sorocaba (Facens), em São Paulo, em março. Cerca de 25 pessoas, em sua maioria mulheres, participaram do evento, que fez parte da Semana da Mulher na Tecnologia, ação realizada no Brasil inteiro e que contou com encontros de diversos grupos de TI voltados para mulheres. No encontro em Sorocaba foi apresentado o projeto Women Techmakers, uma iniciativa do Google para dar visibilidade, recursos e comunidade para as mulheres que trabalham, estudam ou pretendem ingressar no ramo de TI. Além de um vídeo de Camila Achutti, sobre prototipação e como tirar ideias do papel, os presentes participaram de uma palestra sobre GIT, com Cassia Monteiro, desenvolvedora no site 99jobs.com. Ao final foi apresentado

o projeto de um agregador de comunidades que as participantes do WTM realizarão até o final do ano, tendo as palestras mensais organizadas pelo grupo como capacitações para o desenvimento do mesmo. Ajudaram no evento as empresas GS Solutions, J!Quant, iMasters e Facens. Mais informações sobre futuros eventos no Facebook WTM Sorocaba http://fb.com/womentechmakerssorocaba

equinociOS O grupo CocoaHeads Brasil, de desenvolvedores iOS, realizou em março um equinócio de artigos. O “equinociOS” trouxe a publicação de diversos artigos temas de conhecimento elemental que qualquer desenvolvedor iOS deve dominar. As publicações aconteceram entre os dias 01 e 20 de março, quando começou o equinócio de outono no hemisfério sul. Todos os artigos estão disponíveis para consulta em http://equinocios.com/


73 // Por aí

Brasileiros se destacam em NY criando experiências sensoriais baseadas em tecnologia A Black Egg, empresa de design de experiências sediada em Nova Iorque, foi contratada pela Samsung para desenvolver o “Social Galaxy”. O projeto é assinado pela dupla brasileira Lucas Wethein e Marcelo Pontes. A Samsung 837 foi inaugurada em março, em NY, e é uma loja conceito dedicada integralmente a experimentações. O ponto alto é o Social Galaxy, um túnel espelhado do teto ao chão que reflete o conteúdo existente no Instagram de cada um dos seus visitantes. As hashtags e as legendas são sonorizadas e amplificadas, proporcionando ao internauta uma viagem sensorial à sua própria vida, fazendo uma espécie de “Túnel do Tempo” contemporâneo. Assista ao vídeo que demonstra a experiência: https://youtu.be/ppOw_JAlk4k

Unesp Sorocaba oferece versão digital de livro sobre Robótica e Automação Após o lançamento da versão impressa, o livro que reúne uma coletânea de artigos da 1ª Mostra Científica de Robótica e Automação de Sorocaba e Região recebeu também uma versão digital e gratuita. Organizado pelo Prof. Mauricio Becerra-Vargas e pelos servidores Eva de Sousa Rodrigues e Carlos Augusto Morbiolo, do Instituto de Ciência e Tecnologia da Unesp em Sorocaba (ICTS), São Paulo, a publicação conta com artigos completos dos 20 trabalhos apresentados na Mostra. De

acordo com o Prof. Becerra-Vargas, o lançamento desta versão digital deverá atingir um interesse maior do público, o que deverá refletir em uma melhora na qualidade dos trabalhos na próxima edição da mostra. Você pode baixar o livro “Anais da 1ª Mostra Científica de Robótica e Automação de Sorocaba e Região” neste link: http://ow.ly/10n0iw. A Mostra Científica aconteceu em novembro de 2015 e contou com a exposição de trabalhos na forma de pôster e oral, bem como apresentação de protótipos, sendo estes avaliados por comitê científico qualificado e como resultados os melhores trabalhos serão premiados, a fim de estimular os estudantes para o desenvolvimento de projetos.

Agenda de eventos iMasters 2016 Em março o iMasters realizou o PHP Experience 2016, grande congresso sobre a linguagem. Em parceria com o grupo PHP SP, o PHP Experience 2016 reuniu cerca de mil pessoas em dois dias de evento altamente técnico. Os vídeo estão disponíveis no nosso canal do Youtube: youtube.com/user/imasters. Ao longo do ano outros três grandes congressos técnicos acontecerão: DevCommerce Conference, nossa conferência focada em desenvolvimento em comércio eletrônico, acontece nos dias 06 e 07 de junho (devcommerce2016.imasters.com.br). No segundo semestre teremos o Android DevConf , dias 05 e 06 de setembro e o já tradicional iMasters InterCon, em 21 e 22 de outubro. Reserve as datas e inscreva-se! Informações: eventos@imasters.com.br


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


Revista iMasters #18  

Programação funcional em pleno 2016? A gente aqui que vale, sim! Veja ainda artigos sobre SEO, marketing digital e mobilidade.

Read more
Read more
Similar to
Popular now
Just for you