Revista iMasters #13 - Fevereiro

Page 1

Fevereiro 2015 / Ano 04 / Edição 13 Nós fazemos a Internet no Brasil

INTEGRAÇÃO CONTÍNUA:

MAIS ATUAL DO QUE NUNCA! #capa #pag24

R$24,00

AS MEDIA QUERIES

MODELAGEM PREDITIVA

SÃO SÓ UM DETALHE

E PRODUTOS RELACIONADOS AOS DADOS

#design #pag13

#dados #pag38

TUDO O QUE VAI ACONTECER NA WEB EM 2015 (OU NÃO)

#tendencias #pag64


WHO WATCHES THE WATCHMEN? Um espaço que fornece conteúdo gratuito à comunidade de estudantes e profissionais da área de segurança e tecnologia

LABS.SITEBLINDADO.COM


Expediente TIAGO BAETA Publisher RINA NORONHA (MTB 2759-ES) Editora/Jornalista Responsável FABIO LODY Direção de Arte / Diagramação NATHÁLIA TOREZANI Revisão COLABORADORES Anderson Casimiro, André Rosa, Bernard de Luna, Bruno Rodrigues, Bruno Silva Saes, Celso Poderoso, Claudio Oliveira, Eder Miranda, Edu Agni, Fabio Lody, Fabrício Leotti, Fernanda Weiden, Flávia Jobstraibizer, Kemel Zaidan, Lucia Freitas, Mariana Sousa, Reinaldo Ferraz, Ricardo Azevedo, Richard Johansen, Victor Nascimento, Willian Justen de Vasconcellos. 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 artistas ou do editor da revista.


Editorial Como jornalista que sou, consigo escrever de diversos assuntos, contando com a propriedade das minhas boas fontes. Mas, às vezes, vale muito mais a pena deixar um especilista no assunto falar, em um belo artigo, do que juntar diversas ideias em uma matéria. Tem sido assim na Revista iMasters. Contamos com a preciosa colaboração de profissionais experientes para falar sobre as mais diversas áreas de Desenvolvimento, Tecnologia e Web. O resultado de tal trabalho você encontra nas nossas páginas a cada edição. E, apesar de não fazer aqui muito do trabalho de escrita do conteúdo, sempre há uma pesquisa bastante ampla, perguntas, a produção como seria feita para uma matéria jornalística. Assim, ao receber os artigos, consigo garantir que o conteúdo que será entregue a você, leitor, está não só dentro da nossa linha editorial, como também dentro da sua expectativa. Tem sido assim nos últimos dois anos, não foi diferente nesta edição, a primeira de 2015. Entender um pouco do que é Integração Contínua e a sua importância foi o primeiro passo para conseguir conversar com o Fabrício Leotti, que apresenta um artigo especial sobre o assunto. Aprender que a Ericsson estudou por volta de 20 linguagens de programação a fim de encontrar qual seria a melhor plataforma para seus requisitos, e daí pesquisar um pouco sobre Erlang e linguagens e bugs, foi o resultado da leitura de um outro artigo, do Victor Nascimento. Sem falar dos tantos aprendizados a partir das colunas fixas de Fernanda Weiden, Flávia Jobstraibizer, Kemel Zaidan, Bruno Rodrigues e outros! Para mim, enquanto editora da revista, o processo de produzir o material é, verdadeiramente, um grande aprendizado. Espero que para você, que vai ler o conteúdo já lindamente diagramado, possa aprender ainda mais, dentro da sua área de atuação. E, se te interessa participar desse processo de distribuição de conhecimento, entre em contato. Sempre tem espaço, na Revista e no Portal iMasters, para quem quer colaborar.

Abraços, Rina Noronha Editora - iMasters redacao@imasters.com.br


Sumário < 5

24

Capa - Integração Contínua: Mais atual do que nunca!

13 Design As Media Queries são só um detalhe

38 Dados Modelagem Preditiva e Produtos Relacionados aos Dados

64 Tendências Tudo que vai acontecer na web em 2015 (ou não)


6 > Sumário

07 :: Entrevista > Dave Camp, diretor do Firefox Developer Tools 13 :: Design > Design Responsivo: As Media Queries são só um detalhe 17 :: Por dentro do W3C > HTML5 é uma recomendação. E agora? 20 :: Cloud > Containers: você ainda vai usar um! 24 :: Capa > Integração Contínua: Mais atual do que nunca! 30 :: Desenvolvimento > Polymer: Como essa novidade te ajudará no desenvolvimento de Web Components 34 :: Linguagens > A maldição da linguagem e o Elixir 38 :: Dados > Modelagem Preditiva e produtos relacionados aos dados 41 :: Gestão > Spam: provando que Bill Gates estava errado 45 :: Cyberlaw > O seu software está protegido? 49 :: 7Masters - Encontro iMasters de Especialistas 52 :: Desenvolvimento Zen > Performance pessoal: mudanças simples que podem melhorar sua produtividade 56 :: Por aí > Fazendo a internet do Brasil pelo mundo 61 :: Comunidade > Hacklab Sorocaba - Compartilhando conhecimento 64 :: Tendências > Tudo que vai acontecer na web em 2015 (ou não) 68 :: Sr. Conteúdo > Portais corporativos:o que são e como mantê-los 72 :: Código Livre > Informações e dicas sobre projetos Open Source 73 :: Analytics > Criação de valor estratégico através de Digital Analytics 76 :: Tecnologia do Futuro > O futuro não está tão distante 78 :: Review > Por que usar Gulp? 82 :: Criatividade Tecnológica > A festa dos Nerds 84 :: Gestão > ROI em programação 86 :: Conexão Vale do Silício > Memcache em larga escala 88 :: iMasters Box

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


Entrevista < 7

Firefox e o futuro da Web Por Por Rina Noronha, para Revista iMasters Com 10 anos completados há pouco tempo, Firefox já tem um longo caminho percorrido e o desejo de quem faz o browser é que ele tenha um longo futuro pela frente, sempre tendo foco nos assuntos mais importantes, como direito digital, privacidade, neutralidade da rede e segurança online. Além disso, querem tornar a Web uma plataforma melhor, lutando para protege-la , brigando sempre para que o usuário – e o desenvolvedor – tenha opções avançadas de escolha e controle. Essa é a visão de Dave Camp, diretor do Firefox Developer Tools para a Mozilla. Ele e sua equipe constroem ferramentas para tornar os desenvolvedores mais produtivos e capacitá-los para construir a Web. Dave começou sua carreira trabalhando em software desktop open source na Ximian e foi para a Mozilla em 2006, como um engenheiro de plataforma. Veja nessa entrevista exclusiva para o iMasters um pouco da visão de Dave sobre os 10 anos do Firefox e o que o browser tem feito e ainda fará pelos desenvolvedores e usuários.

(Dave Camp, Diretor do Firefox Developer Tools para a Mozilla)


8 > Entrevista

O Firefox completou 10 anos. Qual balanço que você faz dessa história? Criamos o Firefox há 10 anos para entregar escolha e controle na Web. Isso tem sido algo enorme para os usuários – temos conseguido entregar nossa missão de promover abertura, inovação e oportunidades online. E isso também tem sido enorme para os desenvolvedores. Firefox nos mostrou o que é ter um browser que você mesmo pode ajudar a construir e ampliar, deixando-o totalmente seu. As pessoas pegaram essa liberdade e construíram add-nos como o Firebug, que nos mostrou como o desenvolvimento Web poderia ser diferente do tradicional. O Firefox completou 10 anos. Qual balanço que você faz dessa história? Criamos o Firefox há 10 anos para entregar escolha e controle na Web. Isso tem sido algo enorme para os usuários – temos conseguido entregar nossa missão de promover abertura, inovação e oportunidades online. E isso também tem sido enorme para os desenvolvedores. Firefox nos mostrou o que é ter um browser que você mesmo pode ajudar a construir e ampliar, deixando-o totalmente seu. As pessoas pegaram essa liberdade e construíram add-nos como o Firebug, que nos mostrou como o desenvolvimento Web poderia ser diferente do tradicional. Se você pudesse destacar cinco grandes coisas que a Mozilla fez na primeira década do Firefox, o que seria? Temos muito orgulho de cada release, cada nova funcionalidade, cada padrão que colocamos no mercado, completa nossa missão e move a Web para ser uma plataforma. Mas eu gostaria de destacar o seguinte: 1) Fomos os primeiros com funcionalidades líderes de privacidade e iniciativas como

DNT e o add-on Lightbeam, e dedicados a melhorar a privacidade com coisas como navegação anônima, esqueça esse site e agora com o novo botão “Esqueça” (Forget Button) e o Firefox for Android Privacy Coach. 2) Lideramos o direcionamento da Web como plataforma, entregando padrões e sendo pioneiros em novas tecnologias, como gráficos 3D na Web, comunicações na Web em tempo real, e mais de 30 novas WebAPIs para mobile. 3) Firefox foi o primeiro a oferecer uma plataforma de add-nos para adicionar novas características, funcionalidades ou um visual personalizado ao seu navegador. Temos milhares de add-ons para personalizar toda a sua experiência Web. Temos algumas coleções de add-nos com foco em privacidade e segurança, como LightBeam, Ghostery e Privacy Badger. 4) Firefox já foi traduzido em 90 idiomas por nosso incrível time de voluntários. 5) Ampliamos a navegação open source para mais milhões de usuários com o Firefox para Android (mais de 80 milhões de downloads). Também é preciso lembrar que lançamos o Firefox OS como o único sistema operacional mobile aberto, atualmente disponível em três continentes para 12 modelos de smartphones em 13 operadoras de 24 países. Recentemente foi lançado o Firefox Developer Edition, um browser desenvolvido especialmente para desenvolvedores. Você pode explicar melhor sobre esse projeto? Os objetivos, motivos e os próximos passos dele. Sugestão: Você pode explicar melhor sobre esse projeto, falando sobre os objetivos e os próximos passos dele?


Entrevista < 9

O Firefox Developer Edition é um browser que consolida todas as dev tools que os profissionais estão acostumados a usar e algumas coisas novas que simplificam o processo de construir para a Web.

Firefox nos mostrou o que é ter um browser que você mesmo pode ajudar a construir e ampliar, deixando-o totalmente seu Um dos pontos mais difíceis para os desenvolvedores é ter que usar inúmeros ambientes de desenvolvimento separados para criar conteúdo engajador ou direcionado a diferentes lojas de aplicativos. Por isso, devs geralmente acabam “pulando” por diferentes plataformas e navegadores, o que diminui a produtividade e causa frustrações. O Firefox Developer Edition acaba com esse problema ao criar um ponto de foco para agilizar o fluxo do trabalho de desenvolvimento. É um browser estável e que é mais do que uma ferramenta poderosa de autoria, mas também é robusta o suficiente para a navegação diária. Ele também acrescenta novas funcionalidades que simplificam o processo de desenvolvimento para toda a Web, quer o seu alvo seja o mobile ou o desktop, em qualquer plataforma. Além do visual limpo, escuro (o mesmo tema do developers tool) e propício ao foco, foram integradas duas novas funcionalidades, Valence e WebIDE, o que melhora o workflow e ajuda a fazer o debug de outros navegadores e apps diretamente do Firefox Developer Edition. O Firefox OS vem crescendo sua presen-

ça em Mobile e agora também em Smart TVs. Com a nova onda de wearables e smartwatches, a Mozilla pretende lançar um wearable próprio ou já está fazendo alguma parceria para que esses novos devices venham com a plataforma do Firefox OS? Como uma plataforma totalmente aberta, todos podem desenvolver para o Firefox OS e testar novos produtos nele. Temos visto um grande interesse em dispositivos além de apenas smartphones. A Mozilla está trabalhando com a Panasonic para desenvolver a próxima geração de SmartTVs rodando FirefoxOS, e recentemente a Abticool lançou um dispositivo HDMI para streaming que permite ao usuário exibir conteúdo do seu app mobile ou web em um dispositivo HDTV compatível. Não temos nada específico para anunciar neste momento, mas ficamos muito felizes com todo esse entusiasmo – queremos que a base de todas essas coisas “smart” seja um sistema aberto. Você pode falar como é o processo de criação de novos produtos na Mozilla? Cada produto é diferente do outro. Geralmente um pequeno grupo de pessoas tem uma ideia que ajuda a avançar na Web, e então eles constroem um protótipo. Esse protótipo pode trazer apoio e entusiasmo, e então falamos sobre o que é necessário para que ele se torne real. O Firefox Developer Edition é um exemplo desse processo de idealização de produto. Por algum tempo, o time de desenvolvimento de ferramentas pensou em qual seria a aparência de um navegador focado apenas nos desenvolvedores, em vez de compartilhar ideias de design com todos os usuários do Firefox. E foi na época do 10º aniversário


10 > Entrevista

do Firefox que decidimos que era uma boa oportunidade para juntar todas as pecinhas em um grande release. Foi um esforço enorme, mas muito compensador.

- Yahoo! será a opção padrão nos EUA e estamos bastante animados em trabalhar com eles para oferecer uma nova e melhor experiência de busca para os usuários do País.

A cada projeto que nasce e alcança sucesso, outros são descartados e não chegam a sair do papel. Como a Mozilla descarta esses projetos que por algum motivo não podem ir para o mercado?

- Yandex será o buscador padrão na Rússia.

Constantemente fazemos um balanço das nossas atividades para ter certeza de que estamos trabalhando no que é mais importante para promover a Web. Algumas vezes isso leva a decisões para parar de investir em um determinado projeto. O que fazemos a partir daí costuma ser bastante específico e inerente ao projeto e às necessidades dos usuários. Para projetos já com alguma adoção, isso significa trabalhar a comunicação e informar o plano de transição aos usuários. Tudo isso é feito de maneira open source, então se há um interesse grande da comunidade, um projeto pode durar além do envolvimento direto da Mozilla com ele.

- Baidu será a opção padrão na China.

Desenvolvedores web podem aguardar, pois vamos expandir e refinar nossas ferramentas de desenvolvimento in-browser para atender às suas necessidades Usuários em outros países não verão uma mudança por agora, e vão continuar tendo o Google como padrão.

Um dos grandes financiadores da Mozilla é o Google, que hoje é um concorrente do Firefox com o Chrome. Como funciona essa situação? Existe algum tipo de conflito de interesses?

Firefox é um navegador para todos, sejam quais forem as suas preferências de serviços de busca, e nós vamos continuar oferecendo ao usuário a opção e o controle dessa experiência.

Tivemos uma parceria com o Google por muitos anos, e ela funcionou muito bem e foi muito boa para nós – e, mais importante, para os nossos usuários. Recentemente, anunciamos uma mudança na nossa estratégia de parcerias para buscas no Firefox.

O que o desenvolvedor web pode esperar da Mozilla para os próximos anos? Por exemplo, como está a implementação da ECMAScript 6 e de outras tecnologias?

Vamos encerrar a prática de ter um único provedor padrão global de buscas, passaremos a adotar soluções mais locais e flexíveis por país, para aumentar as possibilidades de escolha e inovação na Web, com novas e ampliadas parcerias na área de buscas:

Vamos continuar levando a Web a novos lugares, oferecendo aos desenvolvedores as ferramentas para isso. Há várias novas funcionalidades que virão em breve para o Firefox – suporte para o novo ECMAScript 6 está sendo adicionado aos poucos. WebRTC, WebNFC, Service Workers e Web Workers


Entrevista < 11

trarão novas capacidades aos aplicativos web, tanto em dispositivos mobile como em desktop. Também estamos levando jogos de nível AAA para a Web com WebGL e Emscripten, e explorando como a realidade virtual pode mudar a Web com o mozvr.com. O Firefox Developer Edition e suas ferramentas estão sempre inovando a forma de se depurar para Firefox OS, Android e iOS. Desenvolvedores web podem aguardar, pois vamos expandir e refinar nossas ferramentas de desenvolvimento in-browser para atender às suas necessidades. Estamos criando novas e melhores ferramentas de desempenho, mecanismos para trabalhar o design e a animação do seu site, e novas formas de integrar o navegador com seu fluxo de desenvolvimento fora do browser.

Nós a queremos como plataforma e lutamos para proteger os direitos de usuários e desenvolvedores todos os dias Assim como acontece com todos os produtos da Mozilla, estamos trabalhando em conjunto com desenvolvedores Web que utilizam ferramentas como UserVoice para receber feedback e colocá-lo em prática, garantindo que estamos fazendo um navegador que seja amado pelos desenvolvedores. 10. E o usuário comum, que utiliza o Firefox como navegador padrão, o que pode esperar para as próximas versões? A coisa mais importante que faremos para

a Web será continuar sendo campeões da Web. Nós a queremos como plataforma e lutamos para proteger os direitos de usuários e desenvolvedores todos os dias. Literalmente, tudo que fazemos é para apoiar a Web e nossa missão de promover a abertura, a inovação e a oportunidade online.

Firefox já foi traduzido em 90 idiomas por nosso incrível time de voluntários Firefox é mais do que apenas um navegador, ele deveria ser a sua companhia segura na Web e ajudar a gerenciar sua vida digital. Nos próximos 10 anos, acredito que veremos o Firefox se tornar ainda mais educativo em oferecer opções de personalização e em manter o usuário no controle da sua experiência Web. À medida que a outra metade da população mundial começar a ficar online, as pessoas vão procurar por uma experiência de conexão segura, fácil de usar e divertida como o Firefox. Isso é importante especialmente em lugares nos quais as pessoas ficarão online primeiramente no mobile, tendo experiências com o Firefox OS no smartphone.


De Devs Para Devs

A plataforma de pagamento que tem em seu DNA Tecnologia e Inovação. Conheça as nossas APIs: moip.com.br/devs comercial@moip.com.br

+55 (11) 3165.4025

moip.com.br


Design < 13

Design Responsivo: As Media Queries são só um detalhe Por Edu Agni, consultor especialista em UX

Vejo com muita frequência pessoas que querem aprender a criar sites responsivos publicarem em grupos e listas de discussão algo como “quero aprender design responsivo… como uso as Media Queries?” ou então “o que é melhor para começar a aprender Design Responsivo: Bootstrap ou Foundation?”. Também é comum encontrar designers dizendo que a responsabilidade de fazer com que um layout torne-se responsivo é do Front-Ender, e que eles não precisam se preocupar com isso.

Tudo errado! Associar os esforços para o desenvolvimento de uma interface responsiva à etapa de Front-End é um dos maiores equívocos atuais do desenvolvimento web.

O Design Responsivo não é apenas uma questão tecnológica de adaptação para diferentes dispositivos, mas sim uma adaptação para diferentes contextos Ethan Marcotte, que cunhou o termo Responsive Web Design, publicou o primeiro texto sobre o assunto no A List Apart em maio de 2010 (http://goo.gl/EZzCax). O que eu acho mais interessante nesse texto são as “categorias” nas quais ele classificou esse texto: CSS, Layout & Grids, Mobile/Multide-

vice, Responsive Design, Interaction Design. Isso mostra por si só a multidisciplinaridade de conhecimentos necessários para desenvolver um site responsivo. Para criar o conceito, Ethan se inspirou em uma ideia mais antiga, a Arquitetura Responsiva (http://goo. gl/BR7zvE), na qual os espaços e ambientes podem se adaptar a condições pré-definidas ou desejáveis, por meio de sensores, de acordo com os diferentes contextos.

Contexto! Essa é a palavrachave O Design Responsivo não é apenas uma questão tecnológica de adaptação para diferentes dispositivos, mas sim uma adaptação para diferentes contextos. Desenvolver interfaces com layouts e conteúdos flexíveis e adaptáveis a uma ampla variedade de resoluções de tela, dispositivos e, principalmente, contextos de uso. As pessoas consomem conteúdo e interagem com os dispositivos de maneiras diferentes de acordo com o contexto em que se encontram. A forma como uma pessoa navega por um site sentada em uma mesa de escritório, em um computador com teclado e mouse, com uma tela espaçosa, boa conexão e um ambiente razoavelmente controlado, é bem diferente da forma que essa mesma pessoa faria se estivesse no metrô com um smartphone de tela pequena e sem luz adequada, conexão instável e ambiente caótico, segurando o dispositivo com uma


14 > Design

única mão e interagindo sem precisão com um dedo grande e engordurado. Nesses diferentes contextos, as pessoas têm disposições diferentes para consumir conteúdo. O tempo e o ritmo são diferentes, e a forma e quantidade de informação que estamos dispostos a consumir são proporcionalmente opostas.

Associar os esforços para o desenvolvimento de uma interface responsiva à etapa de Front-End é um dos maiores equívocos atuais do desenvolvimento web Criar um site responsivo não consiste simplesmente em aplicar Media Queries ao código para espremer os conteúdos de forma um pouco mais amigável em telas menores. Aquilo que o usuário irá visualizar em um smartphone precisa ter mais foco e ser mais enxuto. Não temos espaço nem tempo disponíveis para conteúdos de relevância duvidosa, e por isso precisamos projetar uma interface mais específica e adequada, o que nos obriga a dar mais atenção a áreas como Arquitetura de Informação, Usabilidade e Acessibilidade. Entre o Desktop e o Mobile, precisamos estabelecer uma escala hierárquica de importância das informações textuais e gráficas do site, e com isso repensar a pertinência de apresentação dessas informações em diferentes contextos e dispositivos. Não se trata apenas do tamanho da tela, mas sim do contexto em que o usuário se encontra. Para que essa adaptação a diferentes contextos e dispositivos aconteça de forma adequada, precisamos de uma interface com características bem específicas, como um Layout Fluido com um Design Adaptativo. A

Exemplo de metodologia de Design feito diretamente no navegador. Fonte: http://ow.ly/G8duu

estrutura fluida, onde todas as medidas utilizadas são relativas (porcentagem ao invés de pixels, por exemplo) permitirá que o site se adapte em pequenas variações de tamanhos de tela, como por exemplo a diferença entre um iPhone 6 e um iPhone 6 Plus. Por outro lado, em variações de telas maiores, como a diferença entre um iPad e um iPhone, provavelmente a interface fluida se quebraria, e uma parte do conteúdo se tornaria irrelevante. Nessa situação, precisamos de um layout adaptativo, ou seja, quando o site encontrar um desses pontos de quebra (Break Points), o layout e o conteúdo irão se recompor para serem exibidos de uma maneira mais adequada e adaptada.


Design < 15

Designer e Front-enders, sejam amiguinhos. Cada vez mais vocês vão precisar um do outro! A questão chave é que para implementar todo esse dinamismo no código, além de conhecer bem os usuários e os diferentes contextos de uso, é preciso ter um projeto de design muito bem definido. E, para projetar o design dessas interfaces, um meio estático como o Photoshop não ajuda da maneira adequada. Nessas horas é que Designers e Front-Enders precisam dar as mãos, desde a concepção até a implementação das interfaces. No projeto de Design Responsivo é onde começam a fazer mais sentido as metodologias de “Designing in the Browser” (http://goo.gl/kSZHRK), onde a partir de Sketchs, wireframes e um guia de estilo, o layout é desenvolvido diretamente no navegador com a ajuda de um inspetor de código como o Firebug. É uma maneira ágil e consistente e projetar e testar possibilidades e limitações reais simultaneamente. Para que um site responsivo proporcio-

ne uma boa experiência para os usuários, além de layout fluido e design adaptativo, é necessária uma boa otimização de desempenho, o que pode ser feito muito bem por um designer que entende minimamente de código, e um front-ender que entenda minimamente de design ;) Designer e Front-enders, sejam amiguinhos. Cada vez mais vocês vão precisar um do outro!

Edu Agni é consultor especialista em UX, trabalha há onze anos com projetos nas áreas de design e usabilidade, tendo passado por agências de design, publicidade e marketing esportivo. É curador da área de criatividade da Campus Party Brasil, facilitador do workshop UX Weekend e fundador da Mergo User Experience. www.mergo.com.br


CLOUD COMPUTING GERENCIADO KINGHOST Conte com infraestrutura de ponta sem precisar de uma equipe robusta!

GERENCIAMENTO ESPECIALIZADO Nossa equipe provisiona de modo personalizado o ambiente para sua aplicação.

MONITORAMENTO 24 HORAS DOS SERVIDORES Foco na prevenção de incidentes e manutenção da estabilidade.

Converse com nossos consultores para um orçamento com foco nas necessidades do seu negócio: 4003-5464 ou pelo e-mail comercial@kinghost.com.br Acesse:

kinghost.com.br


Por dentro do W3C < 17

HTML5 é uma recomendação. E agora? Por Reinaldo Ferraz, Especialista em Desenvolvimento Web do W3C Brasil

Em outubro do ano passado pudemos acompanhar um momento muito importante para a Web. Não foi somente seu aniversário de 25 anos ou os 20 anos do W3C. No dia 28 de outubro de 2014, a documentação do HTML5 ganhou o status de “W3C Recommendation”. Mas o que muda realmente na nossa vida com isso? Por que é importante que essa documentação tenha o status de Recomendação, se ela já era amplamente utilizada e implementada em milhares de websites há anos? Sem pensar muito, você poderia simplesmente responder “e daí que virou uma recomendação?” ou simplesmente “não mudou nada na minha vida”. Pensando friamente na pergunta, para um desenvolvedor que já trabalha com HTML5 há anos, o impacto desse documento em se tornar uma Recomendação parece não mudar nada em sua vida. Na verdade, não são mudanças, e sim a consolidação de uma tecnologia que o mercado escolheu. Quando falo mercado, não estou somente me referindo aos desenvolvedores, mas a empresas e profissionais que decidiram usar o que o HTML5 trouxe de novidade para uma Web em crescimento. A implementação do HTML5 pelos navegadores (e, claro, pelos websites) já vinha acontecendo há muitos anos. Desde os primeiros esboços do documento, debates e idas e vindas com o WHATWG, os navegadores gradualmente foram incorporando recursos, algumas vezes de forma experimental e outras de forma definitiva. Em meados de 2010, testes

de determinadas características do HTML5 só podiam ser feitos na última versão do navegador Opera. Mas que garantia a Opera tinha de que esses recursos iriam permanecer na documentação final?

Com a evolução da documentação, não só do HTML, mas também do CSS e de outras tecnologias do W3C, ganhamos força e munição para desenvolvermos uma Web muito mais rica e cheia de recursos, e de uma forma não somente experimental Não é uma questão de garantia, e sim da participação na construção de um padrão. Os principais players do mercado de navegadores contribuíram para a construção e a evolução do HTML5. A forma de construir esse padrão é a chave de um processo colaborativo e livre. Defender que determinada característica deve permanecer ou não na documentação final faz parte do processo democrático de construção de um padrão global. A Recomendação agora é um documento estável e não corre risco de mudanças. As evoluções e as mudanças virão com a próxima versão da linguagem de marcação. Isso dá ao mercado argumentos para implementar um determinado recurso de forma mais confiável. Eu explico. Imagine uma grande empresa que vai refor-


18 > Por dentro do W3C

mular todo seu website. Essa empresa precisa de um documento de requisitos robusto e estável para tomar a decisão de implementar determinados recursos. Não dá para trazer apenas um relatório com uma lista de browsers e as tabelas do “Can I Use” para um projeto de grande porte.

O que muda realmente na nossa vida com isso? Por que é importante que essa documentação tenha o status de Recomendação se ela já era amplamente utilizada e implementada em milhares de websites há anos? Enquanto o documento não for uma versão estável, muitas empresas ainda poderiam não se sentir seguras para migrar para o HTML5 (acredite, esse argumento existe). O desenvolvedor que está acostumado a implementar esses recursos em todos os websites de seus clientes, vendendo inovação e mostrando que acompanha o que o mercado vem implementando, hoje tem um argumento sólido para convencer seu cliente mais conservador a utilizar novas APIs ou elementos semânticos em seu código. Essa segurança para o mercado é importante para dar mais respaldo ao desenvolvedor para oferecer ao seu cliente um determinado recurso, afinal, a decisão de adotar uma determinada tecnologia envolve custos. Vale lembrar que no documento do HTML5 de fevereiro de 2014, quando seu status já era de Candidate Recommendation, os elementos <dialog>, <details> e <summary> e diversos input types, como <input type=color>, <input type=datetime>, <input type=month>, <input type=week> e <input type=time> corriam o risco de ficar fora da especificação final. Desses mencionados, somente <input type=time> e <input type=color> permaneceram no docu-

mento. Os demais foram movidos para a versão 5.1 da linguagem de marcação, que tem seu status como “Working Draft”. A batalha pela evolução da Web continua, lutando contra sistemas legados e navegadores desatualizados. Com a evolução da documentação, não só do HTML, mas também do CSS e de outras tecnologias do W3C, ganhamos força e munição para desenvolvermos uma Web muito mais rica e cheia de recursos, e de uma forma não somente experimental. A Web moderna deve fazer parte da realidade de todos, desde o desenvolvedor visionário e cheio de ideias no uso das novidades dos padrões até as empresas tradicionais com processos burocráticos e demorados de homologação de desenvolvimento. Por esse motivo, devemos, sim, comemorar o status do documento HTML5 de “W3C Recommendation” e participar cada vez mais da construção desse e dos demais padrões. Eles são desenvolvidos por quem realmente se preocupa com a evolução da Web: nós mesmos.

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


Exposição e gerenciamento de APIs com segurança e velocidade

Com o API Management Suite da Sensedia você consegue:

Conheça melhor e agende sua demo em sensedia.com

a a a a a a

Expor dados e serviços com segurança Engajar desenvolvedores Proteger o seu backend Gerenciar as dependências de APIs externas Monitorar o seu tráfego Entender o uso das suas APIs


20 > Cloud

Containers: você ainda vai usar um! Por Kemel Zaidan, Evangelista Locaweb em tempo integral e de software livre nas horas vagas Não faz nem dois anos que o projeto Docker teve início, em março de 2013, e os containers já parecem ser a nova hype tecnológica do momento. Não é para menos, pois em tempos de computação em nuvem, uma ferramenta que permite tamanha flexibilidade quanto o Docker é muito bem-vinda. Tecnologias de containers permitem virtualizar um sistema operacional sem que seja necessário utilizar um hypervisor. Para isso, o sistema guest compartilha o mesmo kernel com o host e executa as camadas superiores de bibliotecas e aplicações em uma espécie de sandbox que, na prática, isola ambos os sistemas de forma a executá-los de maneira independente. Contudo, como ambos compartilham do mesmo kernel, só é possível “virtualizar” sistemas do mesmo tipo, o que torna a técnica muito propícia à compartimentação de aplicações. Além disso, como não é preciso carregar o kernel do guest nem traduzir as chamadas de um sistema para o outro, como ocorre, por exemplo, na paravirtualização, há muito menos overhead, o que resulta em um maior desempenho e menor uso de memória. A ideia não é nova. O FreeBSD já detinha uma implementação de containers chamada Jails e o (Open)Solaris também possuía os Solaris Containers, ou Zones há alguns anos. Mesmo no mundo Linux, o OpenVZ já existe desde 2005, enquanto que o kernel Linux incorporou o suporte à tecnologia, ainda de forma experimental, em 2009, na versão 2.6.24, com a implementação do LXC, ou Linux Containers.

Então, o que há de tão interessante em relação ao Docker e o que justifica tanto buzz? O que diferencia o Docker de outras implementações de containers são suas APIs, o que permite utilizar a ferramenta em um fluxo de trabalho muito semelhante a algo que boa parte dos desenvolvedores já estão acostumados quando fazem uso de utilitários de linha de comando como o Git. De forma semelhante a este, no Docker, é possível facilmente criar um ambiente de desenvolvimento, “commitar” as mudanças e, uma vez concluído o trabalho, distribuí-lo através da rede para que colegas possam “clonar” o conteiner através da Internet, testá-lo e após a conclusão do mesmo, colocar toda a aplicação em produção simplesmente copiando o container de um ambiente para outro. Da mesma forma que os contêineres facilitaram o comércio internacional ao padronizar uma unidade de distribuição e transporte de bens materiais, containers como o Docker têm a intenção de padronizar a distribuição de aplicações e serviços de software de maneira uniforme. Daí vem o nome Docker, ou estivador, em português. Em ambientes de cloud, o Docker é especialmente interessante, pois facilita o processo de deploy e mesmo a migração entre diferentes fornecedores de nuvem, sejam elas públicas ou privadas. Basta mover o container que pode, inclusive, conter todas as dependências (interpretadores, frameworks e até mesmo bancos de dados) para que sua aplicação execute de maneira autônoma. Em dezembro de 2014,foi anunciado, durante a primeira DockerConf, o suporte ao


Cloud < 21

Docker no Jelastic, a plataforma de cloud como serviço (PaaS) da Locaweb, que deve estar disponível aos clientes ainda no primeiro semestre de 2015. Por isso, se você ainda não utilizou o Docker, preparamos um tutorial rápido para que você possa tirar proveito de todo o poder que essa tecnologia oferec.

Tutorial primeira coisa a fazer é instalar o Docker em seu sistema. No site do projeto há instruções de instalação para diversas plataformas. Tenha em mente que o Docker é uma implementação de containers para o GNU/Linux e, caso esteja realizando a instalação em outro sistema operacional, este executará virtualização convencional sob o Docker, o que obviamente tem impacto no desempenho, apesar de permitir o uso da ferramenta em outras plataformas. Uma vez com o Docker instalado, digite docker em uma janela do terminal para ver as opções disponíveis para a execução. Você verá que a sintaxe de muitas delas se assemelham com termos do git, como commit, diff, logs, pull, tag, etc. O Docker possui um repositório online de imagens prontas, semelhante ao Github: o Docker Registry. A forma mais simples de iniciarmos é baixando uma dessas imagens para a nossa máquina. Que tal baixarmos uma imagem com o NodeJS instalado? Dessa vez, digite docker pull node e veja que o download terá início. Ao final do processo você poderá confirmar que a imagem foi instalada digitando docker images:

$ docker images REPOSITORY node

TAG

IMAGE ID

CREATED

latest

b8a47fa0cdf3

10 days ago

VIRTUAL SIZE 778.7 MB

Agora, se digitarmos docker run node npm -v e docker run node node -v veremos as versões do npm e do node sendo impressa em nosso terminal. O próximo passo é acessar o shell de nosso container. Para isso, digite:

# docker run -t -i node /bin/bash root@8fe314df42de:/# A opção -t diz ao Docker para reservar um terminal virtual (TTY) e o -i para abrir uma sessão interativa. Vamos utilizar o npm para instalar o pacote bitly-cli, que é uma ferramenta simples, para encurtarmos uma URL através da linha de comando. Após a instalação, podemos testar o uso da ferramenta: root@8fe314df42de:/# npm install bitly-cli -g /usr/local/bin/bitly -> /usr/local/lib/node_modules/bitly-cli/lib/bitly-cli.js bitly-cli@0.0.1 /usr/local/lib/node_modules/bitly-cli |--- bitly@1.2.5 root@8fe314df42de:/# bitly -u “http://www.locaweb.com.br” You can access your short url at http://bit.ly/1qS5jSL


22 > Cloud

Se na sequência abrirmos uma nova aba do terminal e digitarmos docker ps veremos o resultado abaixo: CONTAINER ID PORTS

IMAGE NAME

COMMAND

CREATED

STATUS

8fe314df42de stoic_almeida

node:latest

“/bin/bash”

12 minutes ago

Up 12 minutes

Perceba que CONTAINER ID exibido é o mesmo que aparece no prompt onde estamos conectados na outra aba. Está na hora de criarmos o nosso próprio container com o bitly-cli embarcado. Crie uma conta ou faça login no Docker Registry ao digitar docker login e preencha os dados da conta. Em seguida, faça commit das alterações: $ docker commit 8fe314df42de kemelzaidan/artigo_docker c30cbbdfe63ed6448b9fbb8f88cbb7d46e39af2f1e898b153790a32e9fc867cd Você deve utilizar o seu próprio login e nome da imagem. Se digitar docker images novamente, poderá ver a imagen recém-criada. Para compartilhar a imagem com alguém, basta publicá-la no Registry: docker push kemelzaidan/artigo_docker. Se você digitar docker search artigo_docker, poderá ver a imagem que eu acabei de enviar:

$ docker search artigo_docker NAME DESCRIPTION STARS kemelzaidan/artigo_docker 0

OFFICIAL AUTOMATED

Gostou? Pois há muito mais o que aprender sobre o Docker. Instale o programa, siga o tutorial, baixe a imagem que acabamos de subir e conte para nós o que achou do artigo. Suas aplicações estão esperando para subir às nuvens!

Saiba mais: Docker docker.com Docker Registry registry.hub.docker.com/ FreeBSD Jails freebsd.org/doc/handbook/jails.html Solaris Zones http://ow.ly/FZEqG OpenVZ openvz.org

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



INTEGRAÇÃO CONTÍNUA:

MAIS ATUAL DO QUE NUNCA! Por Fabricio Leotti - Analista Sr. Continuous Delivery, Walmart.com


Capa < 25

Seguindo os princípios e as boas práticas da Integração Contínua, os adequando à sua realidade, é possível mudar a cultura obter ganhos em todo o processo de desenvolvimento. O assunto não é tão novo, mas mantém a sua importância: trabalhar com Integração Contínua causa um impacto positivo no processo de desenvolvimento, tornando o trabalho mais eficiente e diminuindo o número de retrabalhos. Em equipes que adotaram as metodologias ágeis, com XP e Scrum, a CI (Continuous Integration, na sigla em inglês) é um dos pilares da agilidade. Com ela, é possível garantir que o sistema funcione a cada build de forma consistente, mesmo com equipes que trabalham remotamente e que estejam mexendo em diversas partes do código ao mesmo tempo. Se a sua equipe ou empresa ainda não adotou uma metodologia ágil e a prática de Integração Contínua, é preciso um trabalho intenso para mudar a cultura e introduzir esses novos conceitos. É necessário utilizar os princípios e as boas práticas estabelecidas pela técnica, o que pode levar algum tempo e mostrar obstáculos pelo caminho. Porém, boas práticas, quando aplicadas por tempo suficiente, podem ajudar a mudar a cultura dentro de uma empresa e a aumentar as chances de que uma iniciativa de introduzir novos conceitos (como os de Integração Contínua) seja bem sucedida. Os princípios básicos da Integração Contínua são: - Mantenha um repositório de versionamento de código - Automatize o build - Faça com que o build teste o código

- Todos depositam mudanças no código todos os dias - Cada mudança entregue deveria passar pelo processo de build - Mantenha o processo de build rápido - Teste em um ambiente equivalente a produção - Torne fácil a obtenção dos entregáveis mais recentes - Qualquer um pode ver o resultado de um processo de build - Automatize a entrega

Esses princípios, como quaisquer outros, servem para orientar, nortear as iniciativas e ações de Integração Contínua na empresa, mas dificilmente deixam claro como exatamente agir para que sejam cumpridos. O papel de determinar como cada princípio ou grupo de princípios pode ser implementado é de um conjunto de práticas. Dentro de um conjunto de práticas, há aquelas mais simples de executar, assim como as que estão mais ao alcance dentro do seu ambiente de trabalho, ou ainda as que tendem a dar os melhores resultados (em termos de efetividade e durabilidade). Essas são as práticas conhecidas como Boas Práticas, ou seja, comportamentos, atitudes e ações que podem ser usadas como modelos em diversas situações. Neste artigo, vou apresentar diversas boas práticas relacionadas à Integração Contínua. Princípio: mantenha um repositório de versionamento de código; todos depositam mudanças no código todos os dias, cada mudança entregue deveria passar pelo processo de build Boa prática: mantenha sua estratégia de branching simples


26 > Capa

Quando o assunto é controle de versão, sempre considere a possibilidade de usar, se já não usa, Git. Além de extremamente poderoso e fácil de usar, é o controle de versão do maior repositório de código aberto do mundo. Existem muitas formas de organizar seu código no Git, mas manter uma estratégia simples é a melhor escolha para facilitar a automação e reduzir as chances de erro e confusão no repositório. Uma estratégia muito conhecida é chamada de GitFlow. Apesar de muito versátil, essa estratégia baseada em branches separados por ambiente/função exige um bom conhecimento de técnicas de merging e rebasing, e é recomendada para grupos com grande maturidade. Mais simples e direto é utilizar um único branch (master) em todo o ciclo de desenvolvimento, exceto por efêmeros feature branches rapidamente reintegrados ao branch master. Essa técnica possui a vantagem de reforçar a integração a um único branch continuamente e o uso constante de tags para marcar certos momentos do código, como releases, hot fixes e a adição de novas features. É vantajosa também se você usa um servidor de Integração Contínua, como o Jenkins, pois facilita na padronização dos dados que seu pipeline recebe. Princípios: automatize o build, automatize a entrega, torne fácil a obtenção dos entregáveis mais recentes Boa prática: padronize seus entregáveis e a forma de levá-los até produção Uma vez que seu código esteja entregue ao servidor de Integração Contínua, faça com que a saída dos dados após os testes e a aplicação de tags seja feita de maneira uniforme. Sejam pacotes WAR, RPM ou DEB, ou ainda imagens de máquinas virtuais (AMIs

da AWS) ou de contêineres (usando Docker), garanta que todo o código possa sempre ser transformado em artefatos do mesmo tipo. Alguns artefatos são mais complexos que outros de serem gerados e mantidos e, em geral, começar por artefatos específicos de sistemas operacionais (RPM, DEB, MSI) é uma boa escolha. Com o artefato de entrega definido, a próxima etapa é garantir que ele seja gerado uma única vez, e também seja promovido e instalado em todos os ambientes necessários sequencialmente até a produção. Essas etapas sequenciais de promoção e instalação devem ser idênticas ou muito parecidas entre ambientes, de forma que você não esteja testando apenas o software, mas o próprio processo de entrega. Princípios: faça com que o build teste o código, mantenha o processo de build rápido, teste em um ambiente equivalente à produção Boa prática: testes automatizados É indiscutível que testar sua aplicação aumenta o nível da qualidade do produto final. Contudo, falar simplesmente em testar pode ser subjetivo demais, já que se todos os seus testes forem longos e repetitivos testes de regressão manuais que o analista de QA executa, ou se você tiver uma estratégia de testes incompatível com o ciclo de vida e as necessidades do seu produto, você ainda poderá dizer que sua aplicação possui testes. O mais indicado é estabelecer uma estratégia de testes, ou seja, definir e discutir quais os tipos de testes expressam a melhor forma de manter alta a qualidade na entrega. Com uma estratégia bem definida, é muito importante que todos os (ou o máximo possível de) testes sejam automatizados. Isso pode sig-


Capa < 27

nificar rodar os testes de forma automática localmente, mas idealmente significa deixar o servidor de Integração Contínua realizar todos os testes automatizados toda vez que um código novo for adicionado ao repositório. Isso ajuda a manter a qualidade ao longo das diversas integrações de código.

A necessidade de possuir métricas a respeito do desenvolvimento e do ciclo de vida da aplicação é geralmente ignorada. E é exatamente o fato de ignorar métricas que faz com que as técnicas e os comportamentos associados à Integração Contínua muitas vezes pareçam trazer poucos resultados.

O processo de executar testes automáticos deve ser rápido, levando apenas alguns minutos. Essa rapidez vai determinar o tempo que os desenvolvedores levam para saber se está tudo bem após a inclusão de novas linhas de código, e também vai definir quantas vezes é possível executar o conjunto de testes. Testes mais demorados e complexos podem ser executados fora do ciclo principal de build da aplicação, até mesmo em ambientes e horários pré-determinados. Entretanto, testes simples nunca devem ser tratados dessa maneira.

Como saber que o tempo do ciclo de desenvolvimento diminuiu se o lead time não é medido e exposto com frequência? Como saber que usando técnicas de Integração Contínua a qualidade do software entregue aumentou se não estamos acompanhando a quantidade de erros encontrados nas etapas automatizadas de testes ou erros encontrados em produção?

O ambiente em que você executa seus testes automatizados deve refletir muito bem o ambiente onde o código será executado posteriormente, em produção. Mas entenda que os ambientes não precisam ser idênticos (embora possam ser, idealmente). É necessário conhecer quais variáveis interferem no funcionamento da aplicação e fazer com que estas sejam o mais próximo possível dos servidores de produção. Um exemplo é que seu ambiente de testes deve possuir o mesmo sistema operacional (incluindo a versão) que seus servidores de produção. Para testes de integração entre diversas aplicações e suas dependências, também é importante que a arquitetura de infraestrutura escolhida para a produção seja a mesma dos ambientes de teste.

Possuir métricas de código (complexidade ciclomática, cobertura de testes unitários e integrados), temporais (tempo de execução de builds do servidor de Integração Contínua, lead time, cycle time), de entrega (quantidade de entregas realizadas com sucesso e com falha, quantidade de erros corrigidos e adicionados em produção após uma entrega) e de testes (número de bugs encontrados, número de bugs em correção e corrigidos) é imprescindível para quem pratica e, em especial, para quem ainda precisa convencer superiores e pares de que as práticas de Integração Contínua são importantes para melhorar a qualidade do código e do produto final. Conclusão

tado de um processo de build

Existem muitas técnicas diferentes que podem ser usadas para colocar em prática os princípios que listei aqui. Não há um único caminho, e nenhum caminho escolhido vai ser percorrido sem que seja necessário aplicar mudanças na forma como sua equipe ou sua empresa pensa, gerencia e entrega suas aplicações.

Boa prática: métricas

Comece pelas práticas mais fáceis de im-

Princípios: qualquer um pode ver o resul-


28 > Capa

plantar para a sua realidade. Talvez seja subir a cobertura de testes do código, talvez seja colocar todas as aplicações pra serem entregues pelo servidor de Integração Contínua ou talvez seja espalhar pelo ambiente de trabalho monitores que mostram métricas para informar às pessoas que elas podem melhorar a qualidade e o processo de entrega. Isso feito, tenha em mente duas coisas importantes: primeiro, a obtenção do comportamento e das práticas depende diretamente da cultura e do significado que esse processo tem para as pessoas. Ferramentas instaladas não vão resolver o problema se as pessoas não entenderem por que estão fazendo aquilo. Segundo, não desista. Leia e informe-se sobre as técnicas que quiser aplicar e tenha paciência com quem ainda não entendeu e não tem o mesmo comportamento que você. Evite assumir a postura de “nós contra eles” e tente mostrar que todos estão no mesmo barco, independentemente se ele vai seguramente para o próximo porto, ou se vai direto para o centro da tempestade.

Princípios da Integração Contínua - Mantenha um repositório de versionamento de código - Automatize o build - Faça com que o build teste o código - Todos depositam mudanças no código todos os dias - Cada mudança entregue deveria passar pelo processo de build - Mantenha o processo de build rápido - Teste em um ambiente equivalente a produção

- Torne fácil a obtenção dos entregáveis mais recentes - Qualquer um pode ver o resultado de um processo de build - Automatize a entrega

Leitura recomendada Continuous Integration: Improving Software Quality and Reducing Risk http://ow.ly/IgxRF

Pro Git (ebook para download) http://ow.ly/IgxYx

A successful Git branching model (GitFlow) http://ow.ly/Igy6H

Fabricio Leotti atua na equipe de Continuous Delivery no Walmart.com. É biólogo formado pela USP e programador há quase 15 anos. Como biólogo, é apaixonado pelos processos simples e enxutos, com potencial adaptativo e capazes de integrar sistemas diversos. Como programador, é um eterno insatisfeito com os processos repetitivos e manuais que as empresas insistem em manter em detrimento à entrega de produtos com alta qualidade e fácil manutenção. Como ser humano, decidiu juntar as duas coisas para ser um profissional melhor e dominar o mundo. github.com/lonefreak | @lonefreak


MBA FIAP: TECNOLOGIA, EMPREENDEDORISMO E INOVAÇÃO. Faça um MBA que tem credibilidade em todo mercado, que será um referencial na sua carreira e que apresenta extensões inovadoras e reconhecidas mundialmente. São 17 cursos de MBA, recomendados pelo MEC, pela mídia especializada e por quem mais importa: o mercado de TI. Corpo docente altamente qualificado, infraestrutura completa, parcerias com as principais empresas de Tecnologia, como IBM, SAP, Oracle, Microsoft, entre outras,

além de quatro unidades localizadas nos principais centros de negócios de São Paulo. Ao final de cada curso, você pode optar por complementar seu MBA em Nova Iorque, Londres, Estocolmo ou Singapura no programa Hyper Island – Digital Acceleration; ou então, em Boston, no Babson Build, da Babson College. São oportunidades únicas de desenvolvimento de networking global, aprendizado e intercâmbio cultural.

SHIFT YOUR SUMMER

CURSOS DE CURTA DURAÇÃO

A FIAP também oferece cursos de verão, que abordam algumas das tecnologias mais demandadas pelo setor de TI. Todos apresentados por profissionais que são referência no mercado. TECNOLOGIA

TECNOLOGIA

TECNOLOGIA

DESENVOLVIMENTO DE APLICATIVOS IOS COM SWIFT

DESENVOLVIMENTO DE APPS ANDROID

BIG DATA COM ECOSSISTEMA HADOOP E NOSQL

ANDERSON PAULUCCI

JULIANA CHAHOUD

ANDERSON PAULUCCI

GESTÃO DE PROJETOS

GESTÃO DE PROJETOS

INOVAÇÃO

GESTÃO DE PROJETOS - PMI

FUNDAMENTOS SCRUM PARA PROJETOS

DESIGN THINKING NA PRÁTICA

ARMANDO NAZARÉ

FABIANO MILANI

ANDRÉ COUTINHO

FAÇA SUA ESCOLHA. VAGAS LIMITADAS. www.fiap.com.br/mba • www.fiap.com.br/shift


30 > Desenvolvimento

Polymer: Como essa novidade te ajudará no desenvolvimento de Web Components Por Bruno Silva Saes, Redator do Grupo Impacta Tecnologia

Uma nova era em desenvolvimento web. É assim que muitos profissionais classificam o Web Components, um novo padrão que promete solucionar problemas como o de Componentização, além de transformar o desenvolvedor num verdadeiro “web maker”, permitindo criar seus próprios elementos HTML customizados, independentes e reutilizáveis. O novo Web Components é composto por quatro novas especificações: Custom Elements, HTML Imports, Templates e Shadow DOM. O problema é que esses padrões ainda não são compatíveis com todos os browsers, com mais dificuldades no Internet Explorer e no Safari. Apesar disso, algumas empresas já atuam com essas novidades, como é o caso da Salesforce e do Github.

Como é possível utilizar os padrões de Web Components se ele ainda não é suportado por todos navegadores? Mas como é possível utilizar os padrões de Web Components se ele ainda não é suportado por todos navegadores? O segredo está no uso dos polyfills, que oferecem as facilidades ainda não implementadas no browser. E é nesse cenário que o Polymer mostra suas vantagens e qualidades.

Entendendo o Polymer

Mantido e criado pelo Google, o Polymer é uma biblioteca com diversos recursos para o desenvolvimento de Web Components. Composta por várias layers, a ferramenta permite a utilização de cada uma do jeito que o desenvolvedor desejar, facilitando e ampliando a criação de seus próprios componentes apenas com HTML. - A camada Foundation consiste em um conjunto de polyfills, que permitem as normas de Web Components, para utilizar a ferramenta no cenário atual dos browsers. - Já a camada de controle Core oferece uma rica e fácil interação do polyfill, permitindo construir “componentes encapsulados” e desenvolver super elementos customizados. - A layer Elements oferece uma API para facilitar o desenvolvimento de novidades,


Desenvolvimento < 31

além de conter os elementos já criados – que podem ser reutilizados e servir como exemplo de boas práticas na construção dos web components. - A camada final, chamada de Applications, é a parte em que o desenvolvedor constrói os apps de web utilizando uma coleção de elementos da ferramenta. O Polymer torna muito mais simples a tarefa de criar componentes da Web, deixando o processo mais declarativo e semântico, já que os elementos são definidos utilizando a tag <polymer-element>, permitindo aproveitar seus recursos especiais como trazer a tag <template> e os esquemas Two-way Data Biding, Animação Nativa e Isolamento Real do Elemento pelo Shadow DOM.

O Polymer mostra como é fácil criar aplicativos Se você achou a ferramenta do Google interessante, que tal começar a criar e entrar nessa nova era do desenvolvimento web? Quem te ensina isso é o próprio Polymer. Conforme dito na página oficial, você começa a utilizar os elementos em apenas 30 segundos, bastando encontrar um componente e importar sua definição em sua página por meio de um HTML Import. Em seguida, os custom elements tornam-se elementos HTML de primeira classe e podem ser usados como qualquer outro. O próximo passo é criar os elementos “customizados” do Polymer, utilizando os padrões de Web Components, o que – ainda segundo o site – pode ser feito em 5 minutos. Em seguida, a página apresenta um tutorial bem descritivo e intuitivo, permitindo que você desenvolva o aplicativo para uma rede social em um tempo de 30 minutos.

Para completar, o site ainda destaca o projeto de design utilizado para a web, chamado de paper elements, que é totalmente ancorado nos conceitos de UI – interface do usuário. Além disso, você ainda é apresentado à ferramenta Designer que permite arrastar e soltar suas aplicações do Polymer e ainda salvar e compartilhar suas experiências como Github Gists.

Criações simples, bonitas e clean O interessado pode ter uma ideia do que é possível fazer com algumas demos disponíveis no site do Polymer. Uma delas é um divertido aplicativo de quiz, chamado de Topeka, que foi todo construído com base no material de design paper elements.


32 > Desenvolvimento

Outra demonstração de aplicativo web é uma criação para apresentar o próprio material de design do Polymer, o paper-elements. Construído de forma bastante descritiva, o app te mostra, de forma simples, todos os detalhes do projeto.

Web Components, Polymer... Se tudo isso é novidade para você, entenda um pouco melhor os termos: Web Components: É um novo padrão para o desenvolvimento em web, que permite o profissional criar seus elementos em HTML. Ploymer: É um polyfill do Google para o desenvolvimento dos padrões de Web Components em qualquer navegador, permitindo criar componentes apenas com HTML, de maneira simples e fácil. Polyfill: Um código para download que oferece as facilidades ainda não implementadas em navegador, proporcionan-

O terceiro app é simplesmente uma calcu-

do ao desenvolvedor a possibilidade de

ladora, mas que, com design e interação in-

criar em qualquer brownser.

críveis, deixa os cálculos mais divertidos e bonitos.

Vendo como essas criações são bonitas, funcionais e simples, você também precisa testar a ferramenta. Veja mais informações o tutorial completo no site polymer-project.org

Bruno Silva Saes é formado jornalista e atua como redator publicitário na equipe de marketing do Grupo Impacta Tecnologia, além de escrever diariamente para o blogimpacta.com.br. Colaboraram: Adam Junqueira (revisão) e Wilson Divino (detalhes técnicos). bruno.ssaes@gmail.com



34 > Linguagens

A maldição da linguagem e o Elixir Por Victor Nascimento - Consultor especialista em Android da Concrete Solutions

É comum ouvirmos que todo software tem bugs e falhas. Parece que todos os sistemas possuem alguma maldição ancestral que nos faz sofrer com isso. Nossas defesas são quase sempre ineficientes: mesmo que tratemos de todas as exceções sintáticas, outras que estão para além da nossa alçada ainda aparecem. Será que essa maldição não tem nenhuma tolerância? Para desenvolver sistemas de telecomunicação tolerantes a falhas, um grupo de pesquisa da Ericsson estudou por volta de 20 linguagens de programação a fim de encontrar qual seria a melhor plataforma para seus requisitos. Isto ocorreu na primeira metade da década de 80 e o veridito foi que nenhuma linguagem possuía tudo o que eles precisavam. Criaram, portanto, o Erlang, para codificar sistemas que possuem nove noves de disponibilidade (ou 99,9999999% de uptime). Será que eles não eram suficientemente versados nessas quase 20 linguagens? Será que um try/catch global não resolveria? Aparentemente não. Tudo indica que eles estavam certos em criar uma plataforma nova, pois ela influenciou diversas outras linguagens ditas orientadas à concorrência pelo modelo de ator e mensagem. O que eles perceberam é que o menor sistema tolerante a falhas é um sistema que executa em duas máquinas diferentes (e não simplesmente um try/catch global). Por mais que cuidemos de tudo aquilo que é executado em nosso sistema, não podemos garantir que um disco rígido não se corrompa, por exemplo. Então, para mitigar as possibilida-

des de falhas, precisamos de um sistema distribuído, paralelo e concorrente. O sucesso da plataforma é muito grande dentro da Ericsson, porém nem tão grande fora da empresa. Apesar de ser um projeto open source desde 1997, o Erlang não possui uma das maiores taxas de adoção da indústria. Quem normalmente leva a culpa por esse fato é a sintaxe da linguagem. Ela é, no mínimo, um tanto quanto diferente do que as pessoas estão acostumadas. Apesar de ser uma linguagem muito sucinta (poucas palavras reservadas, uma biblioteca padrão pequena, porém completa, etc), sua sintaxe foge dos padrões “C”. Quer ver um exemplo?

-module(ola_mundo). -compile(export_all). diz_ola(Nome) -> io:print(“Olá ~p~n”, [Nome]).

(Será essa sintaxe tão estranha assim????) Enfim, há outros que dizem que o problema é a linguagem ser funcional, outros que reclamam do suporte a testes, outros da nomenclatura utilizada, outros da falta de tooling e etc. Fato é que muitos encontram problemas para se iniciar neste mundo concorrente, paralelo e distribuído.


Linguagens < 35

Enquanto de um lado o problema de distribuição estava resolvido (e por conseguinte a tolerância a falhas), de outro a facilidade de uso era o que estava em alta. José Valim, um core commiter do Rails, tinha muita facilidade para trabalhar com Ruby. O ferramental é uma prioridade na plataforma, possui uma sintaxe amigável (apesar de não ser como “C”) e uma grande comunidade. No entanto, quando foi incumbido de melhorar a performance multi-threaded da plataforma, ele percebeu que se virar com threads, locks, mutexes e outros construtos concorrentes não é nada fácil. Assim ele também foi procurar uma plataforma que lhe facilitasse a vida. Talvez não tenha sido 20 linguagens que tenha visto, mas ele também chegou à mesma conclusão: criaria uma nova linguagem que executaria na máquina virtual do Erlang. Ele queria manter a facilidade de desenvolvimento que tinha com Ruby e Rails mas em uma plataforma nativamente distribuída, concorrente e paralela. Daí surgiu o Elixir! Revisitando o exemplo, agora em Elixir:

defmodule OlaMundo do def diz_ola(nome) do IO.puts “Olá #{nome}” end end A estrutura é simples e muito familiar para quem já lê código Ruby. Não há classes e objetos, mas certamente ele criou uma ponte principalmente para a comunidade de rubistas. Ficou mais fácil obter as vantagens da plataforma Erlang.

Claro que, como todo bom artista, ele não mudou apenas a sintaxe da plataforma, mas também incluiu alguns ingredientes próprios que ele sentia falta em Erlang puro: metaprogramação, polimorfismo (por meio de protocols), macros para a extensão da linguagem (influenciado por macros em Lisp) e uma estrutura padrão de projetos com todo o ferramental incluso (testes, configuração de ambientes, definição de dependências e etc). Com tudo isso, talvez cada um de nós consiga criar o próximo servidor que irá aguentar 2 milhões de usuários simultâneos em apenas um “box” (máquina), como é o caso do WhatsApp. Talvez este número pareça demagogia, mas isso é possível por meio do modelo de concorrência da plataforma. Ao invés de nos basearmos em threads de execução nativas, a VM do Erlang se baseia em processos leves que ela mesma gerencia. Estes processos são extremamente leves pois não compartilham nenhum estado. Isso assusta quem está acostumado a compartilhar estado usando objetos (e os acessando de diferentes threads), mas na verdade é muito simples: cada processo possui uma caixa de mensagens (como um e-mail) e só se comunica com outros processos enviando mensagens. Então, ao invés de criarmos uma instância de um objeto Thread e iniciá-lo, fazemos o seguinte:

# 1 - guardamos uma referencia ao processo atual parent = self() # 2 - criamos um processo com spawn_link spawn_link(


36 > Linguagens

fn -> send parent, {:msg, “hello world”} end) # 3 - aguardamos receber a resposta e imprimimos no console

taforma foi pensada com essa distribuição desde o início e a sintaxe agora não é mais desculpa! Nem o ferramental, nem a comunidade, nem a disponibilidade de bibliotecas e etc, etc, etc. Bem-vindo ao mundo dos alquimistas!

Veja também:

receive do {:msg, contents} -> IO.puts contents end

• Vídeo - Joe Armstrong explicando sobre tolerância a falhas - http://ow.ly/Gau9b

Explicando em detalhes (podemos executar estas linhas no próprio shell do Elixir que iniciamos com o comando iex):

• Talk do José Valim sobre os aspectos do Elixir - http://ow.ly/Gaujl

• Erlang - http://erlang.org/ • Elixir - http://elixir-lang.org/

1. Pegamos uma referência ao processo atual (se executado no shell teremos o id do processo do shell); 2. Criamos um processo que executará uma função; 3. Definimos a função que será executada no processo como uma função que envia uma mensagem para o processo que tem o id guardado em parent (aquele que guardamos no primeiro passo); 4. Fazemos o processo bloquear até que chegue uma mensagem (que deverá acontecer instantaneamente já que enviamos a mensagem no passo 3). Parece difícil? Fizemos um exemplo com pouquíssimas linhas que distribui um processamento. Podemos evoluir o exemplo para que cada processo esteja executando em nós de Elixir diferentes. A pla-

Victor Nascimento é consultor especialista da Concrete Solutions, desenvolvedor Java e Android por experiência e Erlang por paixão. Bacharel em Filosofia (por opção!), acredita que o mundo das linguagens de programação anda se esquecendo muito do lado “linguagem” e se focando muito em “programação”. blog.concretesolutions.com. br | victor.nascimento@concretesolutions.com.br



38 > Dados

Modelagem preditiva e produtos relacionados aos dados Por Celso Poderoso, Coordenador de MBA na FIAP

O Big Data trouxe uma nova era para a Computação: a exploração dos dados para melhorar o processo de tomada de decisão nas organizações. Isso está longe de ser uma novidade, mas a computação evoluiu a ponto de fazer com que diversas tecnologias se relacionassem para permitir o acesso e uso dos dados em um volume, uma variedade e com a velocidade cada vez maior. A Análise Preditiva é uma técnica estatística para modelar e encontrar padrões que utiliza dados históricos para realizar previsões de tendências, padrões de comportamento ou eventos futuros. Desde o final século XIX, utiliza-se este tipo de técnica para apoiar o processo de gestão de negócios.

A Análise Preditiva é uma técnica estatística para modelar e encontrar padrões que utiliza dados históricos para realizar previsões de tendências, padrões de comportamento ou eventos futuros No final da década de 60, houve uma maior atenção a este tema devido ao surgimento dos primeiros sistemas de suporte à decisão, e depois com os sistemas ERP (enterprise resource planning) e DW (data warehouses). Desde então, diversos produtos relacionados à gestão dos dados, especial-

mente aqueles voltados para Modelagem Preditiva, têm surgido. A Modelagem Preditiva utiliza-se de estatística e modelos matemáticos para prever resultados futuros. Basicamente, escolhe-se o melhor modelo fundamentado na probabilidade de um resultado ocorrer conforme um conjunto de dados de entrada. Esses modelos utilizam um ou mais classificadores que avaliam a probabilidade de um conjunto de dados pertencerem a outro conjunto. Estas técnicas de previsão são muito úteis e, infelizmente, pouco utilizadas no Brasil. Algumas possíveis aplicações para estas previsões estão nas seguintes áreas: • CRM (Customer Relationship Management): prever o cancelamento de uma assinatura, por exemplo. • Seguros: medir riscos de incidentes baseado no perfil do segurado. • Saúde: medir o risco de pacientes terem recaídas no tratamento. • Varejo: identificar a relação entre produtos adquiridos. • Finanças: identificar fraudes, por exemplo, em cartões de crédito. Contudo, situações como estas se limitam a realizar previsões que podem ajudar a to-


Dados < 39

mar decisões, evitar situações indesejáveis, ou até mesmo diminuir o risco de operações das organizações. Há espaço para um passo além quando se imagina um processo de tomada de decisão orientada para a prescrição de ações. A ideia central por trás disto é que haja sistemas que além de gerar mais dados (na forma de previsões), sejam capazes de produzir orientações para se atingir resultados. Uma das técnicas utilizadas para esta finalidade é a abordagem Drivetrain, que ficou amplamente difundida com o gigante e sua máquina de buscas conhecido como Google. Os quatro passos para esta adoção desta abordagem são: • Qual o resultado que se quer alcançar: definir o objetivo sem se importar com as restrições ou qualquer limitação existente. É uma questão de negócio que precisa estar alinhada com uma necessidade real da organização. • Quais são os elementos que podem alavancar o processo (alavancadores): identificar quais as variáveis de entrada que se tem controle e, portanto, importantes utilizar para atingir o objetivo. É fundamental listar todas as que tenham qualquer nível de influência no resultado esperado. É possível que em algumas destas variáveis não se tenha o controle completo. • Quais são os dados necessários: localizar os dados que podem ser coletados e utilizados no modelo ou os dados que ainda não existam, mas que sejam necessários. Em um primeiro momento, é possível que nem todos os dados estejam disponíveis ou que seja necessário um esforço muito grande para consegui-los. Este é o passo no qual se vincula o que se deseja com o que é possível em termos de dados, e ter uma visão do

que será necessário produzir para alcançar o objetivo. • Criar os modelos: vincular os alavancadores do processo com os dados disponíveis para criar os modelos adequados para atingir o objetivo. Os modelos gerados serão formados por si mesmos e também pelas variáveis de entrada (alavancadores). Normalmente será gerado mais de um modelo para acomodar as variáveis de entrada. Os resultados destes modelos devem ser combinados para prever e indicar a prescrição da ação esperada (objetivo). A prescrição será o resultado das iterações realizadas através de cada um dos modelos utilizados até se atingir o objetivo final.

Leia mais Cloud Computing - http://ow.ly/GbiWn Big Data – Arquitetura do ambiente http://ow.ly/GbiSN A gestão de projetos de Big Data http://ow.ly/GbiPG

Celso Poderoso é coordenador dos cursos de MBA da FIAP (Arquitetura de Redes e Cloud Computing, Big Data - Data Science -, Business Intelligence) e professor dos cursos de pós- graduação da FIAP. É mestre em Tecnologia, especialista em redes sociais aplicadas à Educação e economista. Atua desde 1984 na área de TI, especialmente em desenvolvimento de sistemas e banco de dados Oracle, atualmente é gerente de serviços na MicroStrategy. Possui cinco livros publicados na área de banco de dados, como SQL Curso Prático e Oracle PL/SQL 10g,todos editados pela Novatec Editora. www.fiap.com.br | cpoderoso@fiap.com.br



Gestão < 41

Spam: provando que Bill Gates estava errado Por Mariana Sousa e Eder Miranda, da Unodata AntiSpam No Fórum Mundial de Economia de 2004, Bill Gates afirmou que em dois anos o spam seria um problema resolvido. Ele se referia a 2006 como o ano em que todos estaríamos livres dos spams definitivamente. Mas aqui estamos, mais de 10 anos depois, sofrendo diariamente com essa praga virtual, seja em nossos desktops, notebooks ou smartphones.

ter e Martha Siegel, advogados de imigração norte-americanos em 1994 e ficou conhecido como Green Card Lotery Spam. Considerado o primeiro spam em larga escala, esta mensagem foi disparada para 6 mil e-mails através de um software/código escrito por um hacker contratado exclusivamente para esse objetivo. Os spammers – quem são e o que fazem

Então, fica a pergunta: se até o Bill Gates se enganou sobre o potencial de reciclagem e renovação dos spammers, será que algum dia ficaremos completamente livres dos e-mails indesejados? Mas, antes de falarmos mais sobre esse assunto, vamos ver alguns fatos e curiosidades sobre esse universo.

Um pouquinho de história: o primeiro spam a gente nunca esquece Existem diversas teorias sobre quem enviou o primeiro spam e as mais famosas afirmam que Gary Thuerk, ex-gerente de marketing da Digital Equipment Corporation (DEC) pode ser chamado de pai do spam. Gary foi o primeiro profissional de marketing que idealizou e operacionalizou a divulgação de seus produtos para uma lista de potenciais clientes em 1978. Ele divulgou uma nova linha de computadores e produtos de informática para aproximadamente 400 endereços de email, o que na época representava quase todos os usuários da ARPANET da costa oeste americana. Porém, outras pessoas acreditam que o primeiro spam foi disparado por Laurence Can-

Segundo a Spamhaus, uma das maiores organizações que lutam contra os spams no mundo, dos 10 maiores spammers em atuação, apenas 3 tiveram suas identidades descobertas: Yair Shalev (Kobeni Solutions), Dante Jimenez (Aiming Invest aka Neo Web Marketing) e Michael Lindsay (iMedia Networks aka Dialwave International e Data Advantage). Todos dos EUA, mais especificamente da Flórida

O que você já sabe sobre antispam A maioria dos profissionais responsáveis pelos e-mails, pelas redes e pela cibersegurança já reconhece a importância dos filtros antispam e sabe o quanto essa ferramenta pode colaborar no aumento da segurança dos ambientes de e-mail corporativos. Eles sabem que além de prevenir contra ataques, o antispam também pode contribuir na economia de recursos de hardware, banda, economizando tempo e dinheiro. A cada dia que passa, as ferramentas antispam estão mais acessíveis, automatizadas e independentes, exigindo cada vez menos recursos financeiros (tanto para aquisição


42 > Gestão

quanto para a manutenção) e tempo dos administradores, que só precisam configurar a ferramenta uma única vez. E grande parte

dessa evolução deve-se pela popularização da modalidade em nuvem dos antispams.

Veja o caminho que um e-mail percorre até chegar a caixa de entrada de seus usuários: ETAPAS DE VERIFICAÇÃO - ANTISPAM

Antispam na nuvem ou em software? A melhor opção é você quem escolhe

suas necessidades e restrições. Pagar ou não pagar, eis a questão

O antispam na nuvem reduz consideravelmente o custo de aquisição e proporciona uma mobilidade/ acessibilidade impensável com a modalidade de software. Entretanto, muitos profissionais ainda não migraram seus sistemas para a nuvem alegando que a falta de controle do perímetro e a perda da privacidade ainda são fatores que geram duvidas na confiabilidade desse sistema, influenciando negativamente na escolha entre as modalidades. Por isso é tão importante as organizações que lidam com segurança de email oferecerem soluções híbridas, para que os técnicos e analistas escolham a modalidade que mais se encaixa nas

Vale lembrar que existem diversas opções de antispam gratuitos, como por exemplo, SpamAssassin e Spam Fighter, além das opções embutidas nas plataformas de e-mail, como o Zimbra, Exchange e Google Apps. Porém, dependendo do volume de spam recebido, tais opções apresentam sérias limitações e em alguns casos, não apresentam resultados satisfatórios. As opções gratuitas são mais indicadas para aqueles profissionais que possuem grande conhecimento e experiência na área e que já possuem certo grau de autonomia em relação à configurações básicas, como por exemplo: whitelist, greylist, blacklists, RBL e quarentena. Agora, se você não é es-


Gestão < 43

pecialista no assunto e não tem muito tempo para aprender, as opções pagas oferecem um grande diferencial: o suporte e as atualizações diárias. Em alguns casos, ter uma equipe para solucionar eventuais problemas pode fazer toda a diferença...

O que você (talvez) não sabia sobre antispam O que você talvez não saiba sobre as ferramentas antispam é que, além de servir de gateway, pode exercer diversas funções complementares, como por exemplo, backup e criptografia de e-mails confidenciais, além de facilitar auditorias e proteger a reputação do seu IP/domínio com os filtros de saída.

Backup de e-mails: precaução ou obrigação? Se você trabalha com provedores de internet ou de aplicações, você já deve saber que o Marco Civil da Internet, aprovado em abril do ano passado, obriga os provedores a guardar os registros de conexão por 1 ano e os registros de acesso a aplicações de internet pelo período de 6 meses, conforme as Subseções I e III do Capítulo III da Lei Nº 12.965, de 23 de abril de 2014.

E a pergunta que não quer calar: um dia, os spams vão acabar? Infelizmente, não. Conforme surgem novas tecnologias, surgem novos tipos de spam. Os spammers possuem um enorme potencial e uma criatividade ainda maior para reinventar essa prática, que por incrível que pareça existe há quase 40 anos. Mesmo com todo o avanço que as ferramentas antispam tiveram nos últimos anos, acompanhan-

E a facilidade de acesso a softwares maliciosos no Brasil e o baixo custo para manter uma operação dessas, aliado ao grande volume de mensagens de e-mail trocadas diariamente (mesmo após o surgimento do Facebook e WhatsApp) faz com que enviar spams ainda seja uma atividade relativamente lucrativa e longe de ser extinta. Parece que dessa vez o Bill Gates errou na previsão...

Principais técnicas de Spam • Snowshoe: espalhar mensagens através de uma ampla variedade de endereços de IP e domínios a fim de evitar listas de bloqueios e sistemas de reputação • Botnet: um conjunto de computadores comprometidos onde um software malicioso permanece em execução, explorando vulnerabilidades do navegador web, via worms, cavalos de troia ou backdoors, sob o comando de uma infraestrutura de controle. • Seqüestro (hijacking) de interfaces CGI (Common Gateway Interface): Scripts de CGIs são modificados através da adição e controle de variáveis de configuração ou de campos de entrada pelo usuário • Protocolo de roteamento BGP (Border Gateway Protocol): conhecida como injeção de rota BGP ou seqüestro de sistema autônomo, onde seqüestra-se faixas de endereços IP válidos que não estejam sendo utilizados e invade um roteador com falhas de segurança para ser responsável por essa faixa de endereços.

do a evolução dos demais serviços de telecomunicações (como telefonia e internet), atualizando-se constantemente e agregando cada vez mais serviços, existe um diferencial nos spammers que os fazem crescer mais rápido do que as soluções:

Mariana Sousa é pós-graduanda em Engenharia de Marketing, especializada em content e inbound marketing. mariana@unodata.com.br | @mari__sousa

a busca por reconhecimento na comunidade (causada pelos roubos de dados e invasões), além de gerar uma receita rápida e com baixo risco de punição.

Eder Miranda é CEO e fundador da Unodata, possui mais de 8 anos de anos de experiência na área de segurança para e-mail. eder@unodata.com.br



Cyberlaw < 45

O seu software está protegido? Por Por Ricardo Azevedo, advogado, sócio do COTS Advogados

Quando se fala em software ou aplicativos, sempre vem à nossa mente que, de certa forma, trata-se de um bem dos mais facilmente violáveis. É muito fácil copiá-los, e as versões piratas desse tipo de software constituem hoje a maioria das cópias que circula no mundo. A tamanha dependência dos países e empresas da tecnologia digital transformou a necessidade de normas de proteção à propriedade intelectual em exigência da própria atividade econômica que advém de transferências de tecnologia, controle de mercados e, principalmente, resultados financeiros das corporações. Você não gostaria que, após meses ou anos de desenvolvimento daquele sensacional aplicativo, o seu verdadeiro pulo do gato, a poucas semanas do lançamento do programa no mercado, um concorrente aparecesse com um sistema absolutamente similar, subtraindo seus potenciais clientes. É claro que você poderá demonstrar a um juiz ou árbitro que sua versão é a original, mas isso demandará tempo e, principalmente, recursos financeiros em um procedimento pericial complexo.

Mas isso poderia ser facilitado? A legislação brasileira equipara os programas de computadores às obras literárias, ou seja, possuem a natureza jurídica de um direito autoral. Dessa forma, permite-se que o software que você desenvolveu seja registrado no Instituto Nacional de Propriedade Industrial (INPI) com intuito de com-

provar a autoria de programas de computador e, como veremos mais adiante, para que fique assegurada a exclusividade de sua exploração. Portanto, por um custo que às vezes pode nem superar R$ 3 mil, fora os honorários dos profissionais que atuam para auxiliá-lo em tal procedimento, o registro do software no INPI provê segurança jurídica aos negócios ao se constituir um back up sigiloso e seguro do ativo, o que garante forte evidência em casos de disputas judiciais ou arbitragens, quantas vezes se fizer necessário, sem que a prova seja invalidada, firmando a data da criação e, em especial, quanto à titularidade autoral do programa de computador.

A legislação brasileira equipara os programas de computadores às obras literárias, ou seja, possuem a natureza jurídica de um direito autoral. Além disso, o registro no INPI possui reconhecimento internacional, o que significa que você não vai precisar registrar o seu programa de computador em cada país do mundo. Após o registro, a proteção garante a exploração exclusiva por 50 anos, contados de primeiro de janeiro do ano subsequente


46 > Cyberlaw

Portanto, por um custo que às vezes pode nem superar R$ 3 mil, fora os honorários dos profissionais que atuam para auxiliá-lo em tal procedimento, o registro do software no INPI provê segurança jurídica aos negócios ao da sua criação, ou seja, a data em que o programa se torna capaz de executar a função para qual foi projetado. De mais a mais, os programadores que trabalham ou colaboraram para o desenvolvimento do programa de computador não podem reclamar na Justiça quanto a quaisquer direitos autorais sobre os aplicativos desenvolvidos na vigência do contrato com a empresa que os contratou, ressalvado o direito de reivindicar à paternidade e de opor-se a alterações não-autorizadas, quando estas impliquem deformação, mutilação ou outra modificação do programa de computador que prejudiquem a sua honra ou a sua reputação. Por outro lado, e tão importante quanto, o registro do programa de computadores e aplicativos se torna especialmente interessante quando considerada a possibilidade de geração de negócios com eles, ou mesmo o impedimento de certos negócios se não tiver sido realizado o registro e seus atos posteriores, como averbações de contratos a ele relativos. Pois bem, o registro do programa de computador dá segurança jurídica às partes no caso de cessão ou licenciamento do direito de uso dele, bem como em casos de transferência de titularidade dos direitos patrimoniais do software, haja vista que para tal contrato é permitida a averbação do programa no certificado, garantindo os direitos das partes contratantes e de terceiros. Isso permitirá que você possa explorar comercialmente o programa de computador com segurança, inclusive autorizar ou não a realização de modificações no código-fonte por terceiros. Vale lembrar ainda que, com o registro do

software, o seu proprietário poderá participar de licitações governamentais, haja vista que se trata de condição necessária para a habilitação técnica e contar com ele como título para mestrado e doutorados. Finalmente, os registros dos programas de computadores permitem a seus proprietários ou seus clientes diversas deduções fiscais, por meio de programas de incentivo. Um exemplo é a exigência da Portaria nº 87/2010, do Ministério das Comunicações, que trata dos requisitos técnicos mínimos dos telefones portáteis que possibilitam o acesso à Internet em alta velocidade do tipo smartphone, beneficiados pela desoneração fiscal instituída pela Lei nº 11.196/05, que exige um pacote mínimo de aplicativos desenvolvidos no Brasil previamente embarcados. A comprovação do cumprimento de tal exigência se dá por meio dos registros, no INPI, dos softwares que possuem conteúdo nacional e que devem ser depositados no Ministério das Comunicações pelos fabricantes dos aparelhos mobile beneficiados. O próprio Banco Nacional de Desenvolvimento Econômico e Social (BNDES) possui programas para desenvolvedores inovadores de software nacional, como “BNDES MPME Inovadora” para micro, pequenas e médias empresas que se enquadrarem em uma das ações estabelecidas para o apoio pela instituição financeira. Entre os diversos requisi-


Cyberlaw < 47

tos, o referido programa de investimentos requer que a empresa possua registro ou tenha depositado o pedido de programa de computador junto ao INPI no mesmo ano do protocolo da proposta de financiamento, ou nos dois anos anteriores.

versas e importantes oportunidades empresariais, como acesso a financiamentos mais baratos, incentivos fiscais, entre outros benefícios.

Portanto, existem os mais diversos motivos para o desenvolvedor procurar a proteção do programa de computadores junto ao INPI. Mas para que o software tenha proteção jurídica, é necessário que obedeça ao critério de originalidade. Nesse sentido, o registro no INPI irá proteger o software original, no todo ou em partes, não obstante uma ou algumas partes do código-fonte serem desenvolvidas a partir de um software “standard”. O que será protegido serão as partes diferenciadoras e estratégicas que diferenciam o bem protegido dos demais programas.

O próprio Banco Nacional de Desenvolvimento Econômico e Social (BNDES) possui programas para desenvolvedores inovadores de software nacional, como “BNDES MPME Inovadora” A partir daí, a utilização não autorizada pelo titular do software, por qualquer meio, irá constituir infração aos direitos do proprietário do programa de computador, ensejando reparações por danos materiais sofridos e até mesmo a responsabilização criminal do infrator. Portanto, deixar de registrar o software pode trazer diversos dissabores ao desenvolvedor. Mas, como visto acima, o registro do programa de computador, além de protegê-lo da pirataria ou da ação desleal de concorrentes, abrirá a porta para di-

Ricardo Azevedo é sócio do COTS Advogados, escritório especializado em Direito Digital e E-commerce. Especialista em Direito Tributário pela EDESP/GVLAW e professor universitário de Sistemas Tributários, no MBA de Gestão de Negócios da FIAP (Faculdade de Informática e Administração Paulista). Palestrante da APET (Associação Paulista de Estudos Tributários). Foi Gerente Jurídico de empresas de Tecnologia por aproximadamente 10 anos. ricardo.azevedo@cots.adv.br


UOL CLOUD TEM ESCALABILIDADE INSTANTÂNEA, COBRANÇA POR HORA E A ESTABILIDADE QUE VOCÊ SEMPRE QUIS. MANDE OS SEUS PROJETOS PARA A NUVEM E OS PROBLEMAS PARA O ESPAÇO.

• One-stop shop: oferece todas as soluções em nuvem de ponta a ponta para você • Transferência de dados ilimitada, garantida pela largura da banda* • Hospedagem e disaster recovery 100% no Brasil • Segurança garantida com diferentes camadas de proteção e isolamento • Pagamento pelo uso e com escalabilidade instantânea • Para todo tipo e tamanho de projeto

*Acesse uol.com.br/cloud e confira a largura da banda do plano contratado.

uol.com.br/cloud

Capitais e Regiões Metropolitanas 11 3092 6497


7Masters < 49

“Quando pensamos na criação de um produto, pensamos em todos os aspectos que envolvem desde a concepção e apresentação, até sua interação pelos clientes. OOD é a forma de pensar na criação de cada objeto da aplicação como um produto distinto. Focando na interação entre seus clientes, OOD é o planejamento dos objetos da aplicação para resolução de um problema específico” – João Batista Neto, engenheiro de aplicações e administrador do Fórum iMasters.

João Neto, foi um dos Mestres do 7Masters OOD. Em sua palestra, ele falou sobre Design Orientado a Objeto com foco nos testes. Confira o vídeo: http://ow.ly/IXmPI

Priscila Mayumi Sato, Senior Developer e Technical Team Leader na Scoutfy, apresentou o “Bolovo”, um nome chamativo que ela deu para um problema antigo de arquitetura de software, e deu bons motivos para não usá-lo! Veja aqui: http://ow.ly/IXnf1


50 > 7Masters

O 7Masters é o nosso Encontro de Especialistas. Todos os meses reunimos 7 mestres que apresentam palestras curtas sobre assuntos inovadores e diferentes, para uma plateia de profissionais. Os temas de cada encontro são definidos pelo iMasters e uma equipe de curadoria, liderada em 2015 por Edu Agni. Se quiser dar alguma sugestão, escreva para setemasters@imasters.com.br. Confira aqui como foi a edição do 7Masters OOD. Acompanhe o calendário e assista a todos os vídeos em setemasters.imasters.com.br

Refactoring foi o tema da palestra de Thamara Hessel, co-organizadora do @DevBeers e do PHPGirls SãoPaulo, embaixadora SendGrid e desenvolvedora Rocket Internet. Confira a apresentação aqui: http://ow.ly/IXmGK

Ricardo Bánffy, desenvolvedor, membro-fundador e evangelista da Associação Python Brasil, falou sobre anti-patterns, software ruim: ou, a observação do efeito Dunning-Kruger no ecossistema de software. Veja a apresentação: http://ow.ly/IXn9f

Anderson Casimiro, Technical Evangelist na Jetbrains, falou sobre Gerenciamento de Dependências e Design Orientado a Objetos. Veja a palestra na íntegra: http://ow.ly/IXmKA O fundador da Cajuina Software, Ivo Nascimento, provou muito bem porque Corrigir é Caro e o que fazer quando isso for realmente necessário. Assista ao vídeo: http://ow.ly/IXmCO Fernando Ribeiro, Principal Sales Consultant, Systems & Engineered Systems da Oracle, mostrou que a atualização de software não é opcional, e que o desenvolver deve, sim, se preocupar com isso. O vídeo está disponível aqui: http://ow.ly/IXmTN

Quer participar de alguma edição? Preste atenção na agenda para este ano: 25 de fevereiro - CSS 25 de março - Ruby 29 de abril - Usabilidade 27 de maio - JQuery 24 de junho - Design de APIs 22 de julho - Segurança 26 de agosto - Design Responsivo 30 de setembro - Agile 28 de outubro - SQL 25 de novembro - SEO


O seu parceiro ideal para pagamentos online

Soluções inovadoras e facilidade na integração

Revolucionária API em REST, garantindo flexibilidade e simplicidade O tempo de resposta mais veloz do mercado, menos de 300 ms Mundi Checkout, integração rápida e ambiente seguro para capturar as transações Equipe de relacionamento especializada sempre pronta para auxiliá-lo

O suporte, acompanhamento e parceria do pessoal da MundiPagg foram os principais diferenciais que encontramos comparado a outros players no mercado.” (Eduardo Cucharro, Gerente de TI e Projetos Minha Vida/Dieta Saúde)

www.mundipagg.com.br | contato@mundipagg.com Capitais e Regiões metropolitana: 3003-0460 | Outras regiões 21 3554-2800 SP - Av. Brigadeiro Faria Lima, 1811, 12º andar - Jardim Paulistano RJ - Rua da Quitanda, 199 - 10º andar - Centro


52 > Desenvolvimento Zen

Performance pessoal: mudanças simples que podem melhorar sua produtividade Por Anderson Casimiro, Developer Advocate na JetBrains Como está seu foco nas tarefas que precisa realizar no dia a dia? Você está conseguindo lidar com a torrente de tarefas a fazer? Suas entregas estão no prazo? Você constantemente tem a sensação de que está trabalhando em algo não tão importante quanto outro item de sua lista? Se você parou para pensar em qualquer dessas perguntas, significa que está com problemas em dar vazão aos seus afazeres. A ideia aqui é de, com mudanças simples, melhorar seu fluxo de trabalho para melhorar sua performance ao desenvolver.

em quatro quadrantes distintos, classificados quanto à urgência e à importância. E você vai se identificar em algumas situações:

Organize a casa Quando se está no meio da bagunça, pode ser um pouco difícil encontrar alguma sanidade e trabalhar de maneira organizada. Se você está com uma lista de tarefas gigante e não sabe nem por onde começar, você está com problemas. A primeira coisa a fazer nesse caso é não fazer nada enquanto não se organizar. Monte uma lista do que fazer, ordenada por prioridade, na qual os itens mais importantes estão no topo. Normalmente damos a isso o nome de backlog. A ideia aqui é ter uma visão clara do trabalho a ser feito, e o que é mais importante dessa lista. Com esse backlog, resolva os itens do topo e verifique se a ordem ainda é valida - se não for, re-priorize conforme necessário. Soou familiar, não? Sim, esse é um dos fundamentos do Scrum. Outra coisa que pode te ajudar nisso é o conceito da Matriz de Eisenhower. Resumidamente, você pode classificar suas tarefas

Matriz de Eisenhower Classifique seus afazeres nesses quadrantes. Descarte o que estiver na área cinza (não é urgente, nem importante). Se for possível, delegue o que estiver na caixa roxa, se não for, resolva a caixa vermelha e volte aqui em seguida. O quadrante do “urgente, mas nem tão importante” deve ser olhado com cuidado, e você deve tomar medidas preventivas para não populá-lo. O quadrante vermelho fala por si só: resolva o mais rápido possível - se os itens lá perderem a importância, mova-os para a caixa roxa. O que sobrou é onde você deve se focar, para que você possa planejar.


Desenvolvimento Zen < 53

Por que estou mostrando duas técnicas? Para que tire o melhor proveito das duas! Faça a Matriz de Eisenhower, e quando o Quadrante Azul for o único preenchido, organize-o com um backlog.

Backlog do Duodraco Agora imagine isso na parede, com post-its: você tem um dashboard de suas atividades à vista. Isso é produtivo? É um motivador, inclusive para que você mantenha as tarefas organizadas, saiba o que deve e o que não deve ser feito e quando você poderá fazê-lo. Outra dica de motivação: se puder, mantenha à vista um recipiente transparente onde você coloca os post-its com as tarefas concluídas e acompanhe esse recipiente sendo preenchido!

Use a tecnologia a seu favor Dado que esta coluna recebe o nome de Desenvolvimento Zen, acredito que você, leitor, tenha algum contato com tecnologia ou pretende tê-lo. Há inúmeras ferramentas que ajudam nosso trabalho. Fazer o uso consciente de aplicativos e sistemas de informação deve ajudar a colocar o trabalho em dia.

O exemplo que apresentei no tópico anterior pode muito bem ser aplicado a um sistema de gestão de tarefas, no qual você pode ter um “projeto” ou etiqueta (tag) só com as tarefas Importantes e Urgentes, e outro só com as Urgentes e nem tão importantes.. Aí você se foca em gerir seu painel de tarefas… e se você puder montar um relatório com suas tarefas concluídas e ver a barra de rolagem aumentar ao longo do tempo, você consegue inclusive o motivador que citei :). Se você usa um smartphone, aprenda a tirar o melhor proveito dele, além de usar o Facebook e o Instagram. Anote seus compromissos na agenda: crie lembretes para as reuniões e as datas de entrega antes que elas aconteçam. Use aplicativos para criar lembretes baseados no tempo, como é o caso com as datas de entrega, e com base na localização - como anotar a hora que em você entra e sai da empresa. Você ainda pode usar um aplicativo de gravação de voz para tomar notas do dia a dia e transcrevê-las para texto, como o Evernote faz. Além disso, você pode criar notas faladas pelos principais assistentes pessoais. Há várias aplicações para melhorar sua produtividade e gerenciar seu tempo, como o Pomotodo, que funciona como uma lista simples de tarefas atreladas a um temporizador para a metodologia Pomodoro. Mas, sem dúvida, a coisa mais legal para melhorar a produtividade é fazer a Internet trabalhar para você. Essa é a proposta do IFTTT ( IF This Than That): um gerenciador de integrações de diversos serviços. Você pode automatizar os lembretes que configuramos antes para dispararem e-mails, notificações ou até mesmo fazer uma lâmpada no escritório acender.


54 > Desenvolvimento Zen

Melhore o foco Já teve aquela sensação de que passaram-se algumas horas no escritório e você ainda não começou a trabalhar? Acredite, já aconteceu com a maioria das pessoas. Problemas com falta de concentração, procrastinação e mesmo de interrupções podem estar atrapalhando seu rendimento. Antes de mais nada, estabeleça uma rotina de trabalho. Por exemplo, ao começar, veja seus feeds, e-mails, organize seu “Backlog de Eisenhower” e comece a trabalhar. A cada uma ou duas horas, faça uma pausa, tome um café, cheque por atualizações e continue o trabalho. Se você se acostumar com o ritmo estabelecido, alguns dos problemas de concentração/procrastinação terão diminuições visíveis. Outra dica: ouça música. Quando você começa a produção ouvindo musica, deixa menos espaço para que outras coisas tirem seu foco, como redes sociais ou chat. À medida que você muda de foco, acaba dividindo-o entre tudo o que você já mudou, dentro de um determinado limite. Se você começa escutando musica, você já a adiciona a essa lista de mudanças de foco, consequentemente evitando que mais coisas tirem sua atenção - com a vantagem de que a musica é passiva, você pode fazer outras coisas enquanto a escuta. Como disse no artigo anterior, Falhando e Aprendendo, estar no escritório é pedir para ser interrompido, seja pelo gerente, colega, ou o pessoal do RH cobrando seu aviso de férias. Tente estabelecer um procedimento de interrupção - ou de estado de “Não Perturbe”. Configure com seus colegas um meio de comunicação passivo, como um chat, instant messaging ou ferramentas de comunicação para times e faça a comunicação rodar por lá. Tenha o bom senso de,

nos intervalos entre os “focos de trabalho”, dar uma olhada e ver se não há nenhuma mensagem esperando. Você também pode deixar um sinal com o time quando não quiser ser incomodado - usar o fone de ouvido pode ser um sinal fácil e conveniente de dizer “Estou ocupado, não me interrompa”. Acredito que com estas dicas, configurando bem seu ambiente de trabalho para que não perca tempo e tenha tudo à mão e principalmente com bom senso, você vai ter uma performance melhor e com mais qualidade e tranquilidade. Até a próxima!

Mais um pouco pra você: Ótimo texto do Augusto Campos sobre a Matriz de Eisenhower ow.ly/GbYH5 Pomotodo pomotodo.com Técnica Pomodoro pomodorotechnique.com IFTTT ifttt.com

Anderson Casimiro é Developer Advocate na JetBrains, produtora do IntelliJ IDEA, PhpStorm e outras ferramentas de desenvolvimento. Também é co-fundador e ativista do PHPSP (Grupo de Desenvolvedores PHP de São Paulo). Apaixonado por Desenvolvimento desde 2001, líder de times e gerente de desenvolvimento nos últimos anos, palestrante nos principais eventos da área no país. @duodraco | duodraco@gmail.com



56 > 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

Prêmio Mulheres Tech em Sampa Em dezembro do ano passado, o Google for Entrepreneurs, em parceria com a Rede Mulher Empreendedora e a Prefeitura de São Paulo, lançou o Prêmio Mulheres Tech em Sampa. O objetivo era apoiar financeiramente atividades na cidade de São Paulo que estimulem o empreendedorismo digital entre as mulheres, a atuação de mais mulheres na área de tecnologia e o compartilhamento de experiências entre mulheres empreendedoras. Foram 64 inscrições com propostas para aumentar a participação feminina no ecossistema de startups da cidade por meio de cursos, treinamentos e hackathons, entre outras atividades. As vencedoras foram: Technovation Challenge Brasil 2015, de Camila Achutti (ow.ly/IKWnB); Rodada Hacker, de Gabriela Agustini (ow.ly/IKWyw); Canal Girls in Tech, de Loana Felix Santos (ow.ly/IKWDj); Startup School, de Jaciara Martins Fontes Cruz (ow.ly/IKWKS); Mulheres 50+ em rede, de Tassia Monique Chiarelli (ow.ly/IKWP0). As vencedoras receberam um prêmio de R$10 mil cada para executar suas iniciativas em 2015 na cidade de São Paulo.

Tecnologias Emergentes: Mudança de atitude e diferenciais competitivos nas empresas Este é o título do novo livro de Cezar Taurion, colunista do iMasters e CEO da Litteris Consulting. Lançado no início deste ano, a obra é voltada para profissionais e estudantes de tecnologia e interessados no assunto. O objetivo do livro é dissecar as chamadas “ondas tecnológicas”: plataformas de redes sociais, mobilidade, computação em nuvem, Big Data, Internet das Coisas, inteligência artificial, entre outras, que já estão presentes em nosso cotidiano e, com isso, abrir linhas de pensamento para que os leitores cheguem às suas próprias conclusões. O livro é da Editora Évora e está à venda nas principais livrarias por R$ 59,00 nas livrarias Saraiva e Cultura.


Por aí < 57

Primeiro hackaton da indústria brasileira acontece na Campus Party

Evento sobre equações diferenciais reúne 120 participantes

A Ford promoveu a primeira maratona de desenvolvimento de software da indústria no Brasil, durante a Campus Party 2015. O objetivo era incentivar a criação de aplicativos para carros conectados utilizando a plataforma de conectividade SYNC AppLink como interface de acesso. O primeiro lugar ficou com Daniel Scocco, que criou um aplicativo que pode ajudar a reduzir o valor dos seguros nos automóveis. Chamado de “Bom Motorista”, o app reúne informações como geolocalização, velocidade, se a pessoa utiliza cinto de segurança e maneira que pisa nos pedais – todos os dados são coletados pelo celular ou pelo Sync. Esses dados seriam enviados para as seguradoras que, dessa forma, poderiam ter um perfil mais abrangente de seus clientes e, então, cobrar preços mais justos e eficientes.

Pesquisadores de 10 países estiveram no Instituto de Ciências Matemáticas e de Computação (ICMC) da USP, em São Carlos, para participar do ICMC Summer Meeting on Differential Equations 2015 Chapter. Este ano o evento reuniu 120 participantes, 20% deles estrangeiros. Foram cerca de 75 palestras em que os pesquisadores apresentaram seus trabalhos, além dos pôsteres apresentados por estudantes de pós-graduação. Um dos outros coordenadores do evento, Matheus Bortolan, professor do Departamento de Matemática da Universidade Federal de Santa Catarina e ex-aluno do ICMC, explica que os pesquisadores que comparecem ao ICMC Summer Meeting on Differential Equations investigam modelos matemáticos de fenômenos reais. “Quando modelamos problemas do mundo real, para compreendêlos, muitas vezes nos deparamos com as equações diferencias. De forma bem simplificada, os pesquisadores desse encontro trabalham para compreender essas equações”, afirmou Bortolan. O encontro é promovido desde 1996 pelo grupo de Sistemas Dinâmicos Não Lineares do ICMC e faz parte das ações do Instituto Nacional de Ciência e Tecnologia de Matemática (INCTMat).

crédito: Divulgação/Ford

O segundo lugar foi do projeto “Car Data Applets”, criado por Mauro Pichiliani, colunista do iMasters e autor do podcast DatabaseCast, o app premitiria a criação, compartilhamento, uso e venda de Applets criados a partir de regras simples para diferentes funcionalidades – como tocar uma música a partir de uma velocidade X. Já o terceiro lugar ficou com o aplicativo “Meu Filho”, que traz diferentes funcionalidades de conversas entre os pais e o colégio dos filhos, como a possibilidade de avisar quando está chegando para buscar a criança.

Cerca de 20% dos participantes do evento eram estrangeiros (crédito: Reinaldo Mizutani)

Cerca de 20% dos participantes do evento eram estrangeiros.


58 > Por aí

#devfestsp14: comunidade cresce; desafios também Por André Rosa e Lucia Freitas, para Revista iMasters

Feche os olhos e descreva, mentalmente, o perfil de um participante do GDG Dev Fest São Paulo, o maior evento realizado pela Comunidade Google no Brasil. Provavelmente virá a imagem de um desenvolvedor, um gestor ou empreendedor de tecnologia, estudantes da área de exatas, entusiastas em temas como Android Wear, Polymer, Angular.JS... Pensou em alguém da área de humanas ou mesmo arte? E se na sua imaginação essa pessoa é um homem, é melhor imaginar de novo. Regina Fazioli é professora do curso de biblioteconomia do Centro Universitário Nossa Senhora da Assunção (UNIFAI), além de coordenadora da Biblioteca Virtual do Governo do Estado de São Paulo. Apesar de seu primeiro GDG DevFest, participa de eventos na área de tecnologia sempre que pode. Isso inclui o último evento do Google Developer Group São Paulo de 2014, realizado no último dia 22 de novembro no Centro de Convenções Rebouças. Funcionária da Prodesp, pioneira na informatização do governo estadual, desde 1979, Regina Fazioli diz que sempre se envolveu com facilidade com o tema. “Gosto dos aplicativos do Google e acompanho seus lançamentos. Tento usar o que posso em sala de aula, de uma forma geral entendo que os bibliotecários deviam se envolver com essas coisas”, disse, logo após acompanhar o keynote com exemplos de aplicações com Beacons Bluetooth, conduzida por Jeff Prestes, do PayPal. Mesmo voltado para a comunidade de desenvolvedores, com temas divididos entre aplicações mobile e web, o GDG DevFestSP está longe de ser um ambiente

restrito. Logo na abertura do encontro, Luís Leão, co-organizador do evento e community manager do GDGs-SP celebrou a aproximação entre artistas e programadores ao mencionar a iniciativa DevArt (devart. withgoogle.com), competição global que apresenta novos tipos de arte feito com código. “É sensacional ver artistas começando a programar”, comemorou. Regina também gostou do que viu, mas ainda se incomoda com dois problemas que considera gritantes. “O primeiro: a área de humanas não se envolve com tecnologia. Ao lado de outras, elas se restringem à teoria e não se integram à prática”, apontou. O segundo problema, na visão dela: “as mulheres também não se envolvem!”. Impulsionado por encontros ligados ao projeto Women Techmakers (womentechmakers.com), o número de mulheres no GDG DevFest São Paulo aumentou expressivamente. Dos 600 inscritos em 2014, 85 eram do sexo feminino - no ano anterior, foram 14. “Gostei de saber que o número de mulheres inscritas aumentou, mas ainda é muito pequeno”, lamentou Regina. “Inclusive conheço uma pesquisadora que investiga as razões pelas quais existem mais mulheres fazendo biblioteconomia e poucos homens. Tem um componente cultural aí”, explicou.

Crescimento e interesses da comunidade O caminho para a participação das mulheres, ou mesmo para o aumento de projetos multidisciplinares, pode parecer


Por aí < 59

longo. É inegável, no entanto, o esforço da comunidade de desenvolvedores Google para reunir e aproximar potenciais parceiros de áreas diferentes. Alexandre Borba, Google Community Manager, ressaltou que são poucos os lugares no Brasil sem um GDG local representado, resultando em cinco encontros ao final de 2014. Um resultado expressivo: no primeiro semestre, o país era o 17° em número de participantes em eventos Google. Já é o terceiro.

é mobile first”, apontou.

Além de fortalecer o relacionamento com estes grupos, o GDG DevFest busca recriar a experiência de um ambiente do Google. Trouxe, por exemplo, as novidades do Google I/O: Neto Marin, Developer Advocate do Google no Brasil, apontou a expansão do mercado para o desenvolvimento Android, especialmente interfaces para relógios inteligentes - o Android Wear. Ao contrário dos atuais dispositivos móveis, há uma preocupação para que as poucas interações destas aplicações sejam praticamente imperceptíveis. “E ainda tem gente reclamando que falta um teclado! Esqueçam!”, brincou Marin.

“Como fazer com que as pessoas se sintam parte de alguma coisa?” A resposta de Luís Leão aos profissionais que doaram um tempo de si ao se apresentar no evento foi um presente personalizado: cadeiras “open source”. Independente dos desafios, o GDG DevFest São Paulo é resultado do envolvimento de muita gente, que pode ser medido a partir das imagens compartilhadas no Instagram e dos posts no Twitter com a hashtag #devfestsp14.

As trilhas técnicas, focadas em web e mobile, representam o panorama apresentado por José Papo, gerente de relações com startups e desenvolvedores do Google. Além de explicar as características do serviço Google Container Engine, 74% dos brasileiros entre 15 e 49 anos estão online, diante de múltiplas telas (especialmente móveis), durante todo o dia - mesmo na cama! “Para mim isso é um negócio disruptivo. Mesmo em um mundo multi-screen, a melhor visão

Organizado inteiramente pela comunidade de desenvolvedores do Google, o GDG DevFest São Paulo incluiu um espaço para a exibição de experimentos e “lightning talks” (apresentações rápidas de projetos e tutoriais). Tudo isso de uma forma especial: as pessoas se autocredenciaram e houve um esforço pela sustentabilidade – menos geração de lixo, por exemplo.


SUA PRIMEIRA OPÇÃO EM SEGURANÇA PARA E-MAIL Ferramentas flexíveis para ambientes de todos os tamanhos AntiSpam de Entrada e Saída Arquivamento de E-mail para Auditorias Backup de Mensagens Criptografia de E-mails

Dificuldades para administrar sua infraestrutura de e-mail? A Unodata é a solução definitiva para empresas e provedores eliminarem mensagens indesejadas e perigosas sem nunca perder e-mails importantes.

Confira condições especias para

Veja quem já eliminou os spams www.unodata.com.br ou ligue para (11) 3522-3011

leitores Imasters


61 > Comunidade

Comunidadeí < 61

HackLab Sorocaba - Compartilhando conhecimento Por Rina Noronha, para Redação iMasters Tudo começou com um bate-papo entre pessoas que gostariam de ter mais contato com outros profissionais e interessados de tecnologia em Sorocaba. Guilherme Serrano e Bianca Brancaleone haviam se mudado para a cidade e sentiam falta desse contato presencial, não apenas online. Nessa conversa, com Hudson Augusto, ficou claro que era possível fazer algo ali na cidade, nos moldes de um hackerspace como o Garoa, de São Paulo. A ideia foi apresentada durante o encontro do GDG Sorocaba e teve uma ótima repercussão: 65% dos 68 presentes gostariam de contribuir e participar de um hackerspace. Isso foi em agosto. De lá para cá, o HackLab Sorocaba ganhou forma e participação. Os encontros oficiais começaram em janeiro deste ano com sete pessoas, e em pouco mais de um mês esse número já havia quase triplicado, com cerca de 15 a 20 pessoas por encontro. O hackerspace HackLab Sorocaba reúne pessoas com interesses em comum em ciência, tecnologia, arte digital ou eletrônica, por exemplo, podem se encontrar, socializar e colaborar. Como o grupo ainda não possui um espaço próprio, as reuniões estão sendo realizadas no Shopping Plaza Itavuvu, em Sorocaba. Cada encontro – gratuito e aberto ao público – dura aproximadamente quatro horas e os grupos se organizam nas mesas da praça de alimentação de acordo com os interesses. São realizados projetos utilizando o Arduino, Raspberry Pi, mas nem só de eletrônica e programação vive um hacklab – negócios e boas partidas de jogos de tabuleiro ou cartas também estão sempre em pauta.

“A intenção é unir o pessoal “nerd” que achava que não tinha muito mais gente com interesses semelhantes na região, mas o grupo tem provado que o cenário de Sorocaba é bem diferente disso”, afirma Bianca Brancaleone. O Hacklab Sorocaba se define como um grupo de e para entusiastas em tecnologia com o objetivo de objetivo projetar, testar, estudar e compartilhar conhecimentos sobre diversas tecnologias como programação, eletrônica, hardware, arduino, artes, música, RPG, jogos de tabuleiro e outros. Para Hudson Augusto, o aprendizado mais importante sobre hackerspaces foi que o mais importante não é o espaço e equipamento, mas sim as pessoas. “Temos uma interação muito grande entre as pessoas de diversas comunidades aqui de Sorocaba, como grupos Google – GDG, GBG e GEG, Startup Sorocaba e o mais novo integrante, o Hackeria, um grupo de jovens do sistema Sesi/Senai que adoram hardware livre e compartilhamento de conhecimentos. Os equipamentos a gente consegue aos poucos, mas são as pessoas o fator mais importante”. De acordo com Hudson, o próximo passo é criar um HackFabLab Sorocaba, que seria o espaço fixo da comunidade Hacklab Sorocaba com equipamentos (CNC, cortadora a Laser, outros) à disposição da comunidade para realização de projetos. O HackLab Sorocaba é aberto a todos os interessados. Basta chegar junto, participar e aprender!


62 > Comunidade

Depoimento “Pegar um fio de telefone, dobrar formando um “U”, ligar na tomada e levar um tremendo susto com o estouro. Esse sou eu desafiando a eletricidade desde pequeno. Quando um brinquedo quebrava, a primeira coisa que eu fazia era desmontar para ver o que tinha dentro e, quem sabe, “consertar”; guardava as peças, motores, rodas, alto-falantes. Depois de algum tempo os computadores começaram a chamar mais minha atenção, aprendi sobre hardware e então fui para programação. Os anos foram passando me formei em Sistemas de Informação e fui trabalhar com desenvolvimento de sistemas empresariais. Sempre tentando automatizar algum processo via software, vinha junto um pensamento “e se… tivesse um hardware junto...”. Você consegue fazer tanto programando um computador, mas quando você vê hardware e software juntos interagindo, como nos robôs e outros aparelhos inteligentes, tudo fica mais divertido!

foi o Arduino, aprendi sobre eletrônica com o pessoal e busquei saber um pouco mais sobre o que era possível fazer com o Arduino e já consigo repassar esse conhecimento para os novos integrantes que entram para comunidade a cada encontro. O HackLab é um espaço onde consigo aprender e ensinar e todos podem aprender e ensinar sempre. Além de apoiar o pessoal de eletrônica e programação, comecei a registrar os eventos com fotos e vídeos, colaborando com a divulgação e crescimento da comunidade.”- Angelito Casagrande, participante do HackLab Sorocaba dHackLab Sorocaba Quando? Quartas, 18:30 / Sábados, 10h Onde? Praça de Alimentação Shopping Plaza Itavuvu Site: http://hacklab.club Meetup: http://www.meetup.com/HackLab-Sorocaba/

Mais em Sorocaba Além do HackLab, Sorocaba conta com vários

Na busca por novas ideias e oportunidades, conheci o pessoal do GDG Sorocaba no segundo semestre de 2014 e comecei a participar dos eventos, encomendei uma camiseta da comunidade e esqueci de buscar. Alguns dias se passaram e recebi uma mensagem no grupo de WhatsApp do GDG Sorocaba, dizendo que quem ainda não tinha pego a camiseta poderia buscar no Shopping no sábado seguinte. Pensei que fosse uma reunião pontual do GDG e que iria pegar a camiseta e ir embora, mas lá começava uma nova etapa de aprendizado e troca de conhecimentos, era começo de Janeiro desse ano, um dos primeiros encontros do HackLab Sorocaba na praça de alimentação de um Shopping.

grupos de apoio a desenvolvedores, empreendedo-

Como o assunto dos primeiros encontros

Todas as fotos por Angelito Casagrande

res e tudo relacionado com tecnologia. Informe-se e participe! GDG – Google Developer Group: http://www.gdgsorocaba.org/ GBG – Google Business Group: http://gbgsorocaba.org/ GEG - Google Educartors Group: https://plus.google.com/+GegsorocabaOrg2014 Startup Sorocaba: http://startupsorocaba.com/ Hackeria: http://ow.ly/ILbpz Woman Techmakers Sorocaba: http://ow.ly/ILbsL


Garanta uma formação tão ampla quanto o futuro que você merece. Há mais de 25 anos, a Impacta atua na formação de profissionais de destaque no mercado, sendo a maior referência em TI, Gestão e Design da América Latina. Com mais de 300 treinamentos e 40 certificações, a amplitude da formação Impacta se traduz em 7 escolas distintas, que visam contribuir com a geração de profissionais qualificados em todas as áreas do mercado, e uma metodologia de ensino comprovada, presente em todo o Brasil.

Conheça mais sobre a Impacta, sua tradição e diferenciais exclusivos. Invista hoje mesmo em um ensino forte para um futuro de sucesso!

informações: consultores@impacta.com.br

11 3254 2200

www.impacta.com.br blogimpacta.com.br

/grupoimpacta

@grupoimpacta


64 > Tendências

Tudo que vai acontecer na web em 2015 (ou não) Por Bernard De Luna, Product Leader do iMasters

2014 foi um ano muito importante para concretizar o movimento que foi iniciado há 3 anos aqui no Brasil. Mais do que nunca “o poder está no Front”, como dizia o meu amigo Shankar Cabus; então, para vocês que pretendem atingir um nível muito superior em 2015, seguem algumas coisas que, com 100% de absoluta incerteza, acontecerão!

usabilidade, para interação. Em outras palavras: na remoção de atrito nas interfaces de usuário”. Gondim acredita que a usabilidade de uma aplicação sempre foi diferencial no desktop, “mas no contexto móvel ela se torna ainda mais importante dada a capacidade de um usuário trocar de tarefa e ao infinito número de distrações”, complementa.

Mobile

Sendo assim, preparem-se para o ano mobile de 2015! Principalmente se você tiver Júpiter, o planeta da sorte e da generosidade, passando pela sua empresa.

A adoção cada vez mais rápida do HTML5 está nos permitindo evoluir bastante quando falamos de Responsive Design. Por outro lado, ainda é preciso um pouco de consciência para projetar uma aplicação mobile real. Já foi provado que a preocupação de ajustar um site a um tamanho específico não é eficiente e duradoura, isso gera o que o webdesigner Brad Frost resume muito bem como Device Fatigue (http://ow.ly/Gagy2). Consultei o numerólogo Sergio Lopes, da Caelum, sobre suas previsões para 2015, e ele acredita que este ano veremos a consolidação total do mobile como foco principal na Web. “Quem não conhecer design responsivo estará fora do mercado. Em tecnologias, temos a chegada da <picture> e do srcset, a nova spec de Grids, evoluções em element queries e mais uso de specs importantes pro responsivo, como flexbox e viewport units”, explica. Para reforçar as previsões do Sérgio, conversei também o tarólogo holandês Caio Gondim, da Booking, que afirma que “2015 será o ano em que a maioria irá despertar para

“então, para vocês que pretendem atingir um nível muito superior em 2015, seguem algumas coisas que, com 100% de absoluta incerteza, acontecerão!” HTML 2014 foi o ano do HTML5, tivemos uma adesão enorme em todo o mundo, mas uma coisa se destacou na linguagem e acredito 2015 que será deles, os Web Components! Já faz mais de um ano que criamos o customelements.io, uma galeria com mais de 600 Web Components cadastrados. Além disso, em 2014 criamos o webcomponents. org, um hub de conhecimento da linguagem, juntando os melhores profissionais da área no mundo. O que fará essa linguagem


Tendências < 65

ganhar espaço de vez em 2015? Perguntei ao oráculo espiritualista web Zeno Rocha, da Liferay, que prevê que Web Components decole. “Ainda mais com o suporte total do Chrome as quatro specs (Custom Elements, Shadow DOM, Templates, HTML Imports), isso vai dar início a mais possibilidades aos desenvolvedores”, vislumbra.

Mentalidade Um dos pontos que eu tenho falado há uns dois anos é a necessidade de união e parceria na comunidade. Temos que aceitar que um problema tem mais de uma solução, e que quando alguém te faz uma pergunta, a sua resposta não é a melhor para sempre e para todos, ela é o “seu melhor” naquele momento, pois estamos sempre aprendendo e tendo potenciais melhores respostas. Em 2014 eu consegui confirmar esse pensamento e entender melhor como funcionam as empresas, startups, produtos e inovação. Assim, 2015 tem tudo para trazer um novo estágio dessa união, não apenas entre desenvolvedores, mas incluindo também outros setores da empresa, uma integração vital para um produto inovador e ágil. Conversando com o astrólogo Giovanni Keppelen, da Planedia, entendi que ele compartilha o mesmo pensamento, veja o que ele disse: “Eu acredito que em 2015 teremos menos desenvolvedores pensando somente no código, seja ele em que linguagem for, mas teremos profissionais refletindo no produto como um todo, começando a sair da sua zona de conforto. Isso se dá pelo crescente pólo de startups e empresas fora do ‘eixo’ que estão sendo criadas ou que estão chegando no Brasil, em cidades como Rio de Janeiro, São Paulo e até Belo Horizonte, onde se encontra o San Pedro Valley, que já foi reconhecido mundialmente. Isso vai fazer com que o profissional aprenda mais, pesquise sobre novas tecno-

logias fora do seu ecossistema, como infra, produto, métricas, testes A/B, entre outros. Isso não é novidade, até acontece com alguns desenvolvedores, mas ainda é minoria, por isso acredito que em 2015 isso se expanda bastante, deixando desenvolvedores menos ‘preconceituosos’ com linguagem x ou y, até mesmo se deve ter ou não um simples ; em seu código”. O avanço da IOT vai contribuir para mudar essa percepção dos desenvolvedores e designers, pelo menos é o que acredita espiritualista Luciano Palma, da Google. Segundo ele “palavras como ‘wearables’ e ‘makers’ prometem invadir 2015. Devs antenados sairão do binômio desktop/mobile e criarão soluções para smartwatches e dispositivos inteligentes/conectados. Terão que ser criativos, porque o jeito de pensar é bem diferente!”

“Eu acredito que em 2015 teremos menos desenvolvedores pensando somente no código, seja ele em que linguagem for, mas teremos profissionais refletindo no produto como um todo, começando a sair da sua zona de conforto.” CSS Não é segredo pra ninguém que CSS é a minha linguagem favorita. Sei que ela não é perfeita, mas cada vez fica mais divertida, e isso ninguém pode questionar. Eu diria que este é o ano da firmação dos CSS Filters, mas o pai Shankar Cabus, da JusBrasil, acredita que será a vez do grid. Para ele, “o cenário multi-device já é uma realidade, mas um problema ainda relativamente novo para o CSS. Por isso eu acredito que a bola da


66 > Tendências

vez em 2015 seja diagramação, com propriedades como grid e flexbox e unidades como rem, vh, vw, vmin e vmax. E quem sabe, umas variáveis e mixins?”

JavaScript O conhecimento de JavaScript nunca foi tão importante para o profissional web. Cada vez mais a linguagem se torna providencial e diferenciada para criar aplicações e sites complexos. Uma das plataformas que tem impulsionado esse momento incrível do JavaScript é o NodeJS, como aponta o programador de búzios Leonardo Balter, da Bocoup: “No cenário do JS tem muita coisa mudando lá pro NodeJS, com o atual fork io.io, que quer o mudar o seu ecossistema pra algo colaborativo. Eu sinto que temos tudo para conseguir um ambiente bem amigável para o ECMAScript 6 ainda em 2015.”. Essa evolução do JavaScript vai afetar bastante não só o Brasil, como também outros países, como aponta o tarólogo americano Michael Lancaster, da Orbitz. “Com o super buzz do JavaScript nos últimos anos (Everything JavaScript) as aplicações híbridas/App runtime estarão cada dia mais sendo utilizadas por países como Índia, China e também o Brasil. Principalmente por poderem gastar menos, fazer mais, utilizando o mesmo stack tecnológico com suas vantagens cross-platform.” Outro fator de sucesso que vai ficar ainda melhor em 2015 é o crescimento dos frameworks JS e também suas adoções, como diz o leitor de bola de cristal Ciro Nunes, da Questrade: “As duas maiores promessas (que já são realidade) para 2015 são os Web Components e o advento da ES6 (ECMAScript 6). Sobre a primeira, a expectativa é que os browser vendors que ainda não concordaram em dar suporte à tecnologia o façam. Já a ES6 está completa (e a ES7 em

discução) e todos os browsers já apresentam planos concretos para dar o máximo de suporte às especificações o quanto antes! A versão 2.0 do AngularJS está sendo desenvolvida e de acordo com os design docs do core team, ela está sendo toda escrita em ES6 (com algumas features acrescentadas) e terá integração com os Web Components dos browsers.”

“No cenário do JS tem muita coisa mudando lá pro NodeJS, com o atual fork io.io, que quer o mudar o seu ecossistema pra algo colaborativo” 2015 Queremos ativar muito mais a comunidade brasileira em 2015. Espero que mais cidades ganhem eventos para descobrir, fomentar e capacitar mais desenvolvedores. Que mais empresas unam suas áreas de tecnologia, design e marketing, visando um produto de qualidade e sucesso. Nós do iMasters estamos planejando eventos incríveis para este ano!

Bernard De Luna já foi lider de produto no Jornal do Brasil e Petrobras, Diretor criativo da Melt DSP, Coordenador de Produto da Estante Virtual e Head de Produto no Videolog. Atualmente é Líder de Produto do iMasters e Co-founder do Freteiros.com. Especializado em Frontend, Design funcional e inovação, possui pós-gradução em Marketing Digital. Já deu mentoria na Lean Startup Machine, Startup Weekend, Next, Papaya Ventures, Desafio Brasil, Ideation, 21212, Aceleratech e Startup NAVE,e já participou de mais de 85 eventos pelo Brasil, além do evento internacional do W3C, Startup Camp LATAM, HTML5DevConf, iMasters InterCon, BRAPPS, entre outros. @bernarddeluna | deluna@imasters.com.br


Apiki WP One Day Um dia de especialistas em WordPress por conta do seu site O Apiki WP One Day é uma grande inovação na forma de contratar o time de especialistas em WordPress da Apiki. É indicado para manutenção, suporte e atuações em necessidades pontuais. Funciona assim: você contrata um dia de trabalho, agenda a melhor data pra você, de acordo com a disponibilidade dos profissionais, realiza o pagamento e envia o briefing contendo suas necessidades. Então, no dia agendado, você terá um especialista dedicando-se exclusivamente ao seu projeto.

> Saiba mais sobre essa novidade no site: bit.ly/apikiwponeday


68 > Sr. Conteúdo

Portais corporativos: o que são e como mantê-los Por Bruno Rodrigues, Consultor de Informação e Comunicação Digital

Tão importante para uma marca quanto atender às demandas dos públicos na Internet, é criar laços profundos com quem se dedica, no dia-a-dia, a mantê-la de pé: seus empregados, o público interno das empresas. Contudo, é comum uma empresa me consultar sobre a necessidade ou não de desenvolver um portal corporativo. Para que seja tomada uma decisão acertada é preciso, antes de tudo, entender o que é um portal interno e qual a sua real função. Ainda são muitas as dúvidas que encontro no mercado brasileiro, após quinze anos de experiência e quarenta marcas atendidas. A verdade é que a área está em crescimento, e por isso as questões se modificam ao longo do tempo. A saída para obter uma resposta sensata é estar sempre em dia com as novidades. Afinal, que pontos são fundamentais para se compreender a função de um portal corporativo? Um bom começo é entender as diferenças práticas entre intranets e portais internos, seus norteadores, os pilares de sustentação e como funciona sua governança.

Intranets, Sites Internos e Portais Corporativos Vou ajudá-lo a desmontar, desde o início, a

maior armadilha com que você deverá se deparar: não, intranet é não é sinônimo de portal corporativo. É muito simples entender a diferença: da mesma forma que a web contém sites e portais, eles também existem em uma intranet. E assim como você não é dono da web, mas de seu site ou portal na Internet, uma equipe não é dona de tudo o que há em uma intranet. Hoje, é comum que as áreas de Comunicação das empresas sejam responsáveis pelos portais corporativos, mas não de todos os aplicativos que existem em uma rede interna – SAP, sistemas de consulta a contracheques e aplicações para solicitar férias são bons exemplos, entre dezenas. Ou seja, na intranet está o seu portal corporativo, mas uma intranet não é o portal corporativo. Um portal pode existir de duas formas: coeso, unido, a junção em um mesmo ambiente do que poderiam ser sites independentes dentro de uma mesma intranet, ou como um conjunto de sites ‘avulsos’ de áreas, gerências ou coordenações que só têm em comum a mesma porta de entrada, a primeira página (o conceito real de ‘portal’). Na prática, para funcionar como uma real ferramenta de comunicação interna, a primeira opção é a que tem se mostrado a mais eficaz desde o início, meados dos anos 90. Um portal corporativo deve ser um ambiente único e integrado, e ponto.


Sr. Conteúdo < 69

“Da mesma forma, um portal corporativo, além de oferecer uma entrada única e facilitada, precisa constituir um mesmo ambiente“ Integração e padronização Por que um portal deve ser integrado? É como criar um acesso fácil a um estádio de futebol e poder comunicar-se com todo o público ao mesmo tempo: estão todos juntos em um mesmo lugar. Da mesma forma, um portal corporativo, além de oferecer uma entrada única e facilitada, precisa constituir um mesmo ambiente. Mais do que evitar ruídos na comunicação e no acesso aos conteúdos e aos aplicativos, a economia é enorme: utilizam-se as mesmas ferramentas de portal, publicação, métricas, busca e rede social, que seriam multiplicadas pelo infinito se existissem sites ‘avulsos’, cada um administrando seu espaço de uma forma diferente. Uma vez construído um ambiente único, parte-se para a padronização – afinal, de que adianta reunir informações e entradas para sistemas em um mesmo lugar, se os mecanismos de acesso e consulta são diversos para empregados de gerências diferentes? Ainda que cada área – ou coordenação, ou gerência – tenha suas próprias características, estar em um ambiente único significa ter o mesmo layout e a mesma arquitetura da informação (leia-se os nomes dos itens dos menus) em todo o portal. Não basta ter as mesmas ferramentas, é preciso que a experiência do usuário (UX) seja a mesma. Usabilidade antes de tudo.

Governança Pouco adianta criar um ambiente integra-

do e padronizado se não forem elaborados documentos que garantam a manutenção desses dois norteadores. Como em toda a empresa, vale o que está escrito. Portanto, mais que desenhar a governança de um portal corporativo - quem faz o quê, como e por quê -, fundamental é colocar essas regras no papel, produzindo documentos de governança que orientem, esclareçam e coloquem os pingos nos ‘is’ no que for preciso. Dois documentos são essenciais: o de governança propriamente dito, com a descrição dos personagens envolvidos na gestão do portal, e o de normas de publicação, com o passo a passo do que pode ou não ser publicado pelas áreas e seus porquês. Sendo possível criar documentos adicionais – o manual de uso da ferramenta de publicação deverá ser o terceiro da fila -, o faça. Mais do que servir como ‘tábuas da lei’ da administração de um portal interno, eles servem como ‘legado’, pois que a equipe envolvida em sua gestão não estará lá ad eternum – é fato. Informações permanecem, equipes, nem sempre.

Ação, informação e interação O que precisa existir em um portal interno? Após duas décadas, é nítida a missão de um portal corporativo funcionar como ‘a’ ferramenta de trabalho – ou seja, servir de veículo para a ação. Lembro-me de uma vez, ao entrevistar um empregado de uma


70 > Sr. Conteúdo

grande empresa sobre sua relação com o portal interno, de ficar admirado ao ouvir que ‘se o portal saísse do ar, era melhor ir para casa’. Ou seja, embora a visão seja um pouco radical, o cenário era o sonho de muitas corporações: um portal indispensável que fosse o principal acesso a instrumentos e informações voltados para a rotina diária de trabalho. Esteja certo: isso é o que devemos perseguir, sempre. Ao mesmo tempo, notícia é fundamental em um portal interno. Sem material noticioso, não há visitação, o portal não sobrevive. É o que chamo de ‘conteúdo-âncora’: notícia é o que alavanca todo o universo de informações e aplicações contidas em um portal corporativo. Como uma grande loja de uma marca conhecida em um shopping center, é o material noticioso que faz com que o usuário retorne ao portal, a ‘isca’ que o atrai pelo que há de novidade e que estimula o acesso ao conteúdo ‘fixo’, o material institucional que não muda com periodicidade curta.

Completando o tripé de sustentação de um portal interno está a interação. Encare-a como a relação contínua entre duas personas: empresa/empregado e entre os próprios empregados. Recurso de comentários em notícias, ‘Fale Conosco’, chat e (até) uma rede social são espaços de interação. Exato: uma rede social ou um ambiente de colaboração são extremamente eficientes como instrumentos para a produtividade, mas estão longe de ser os primeiros instrumentos de interação entre marca e público interno. Ao investir em uma rede social interna, tenha em mente que você precisará de 1) recursos financeiros 2) recursos humanos 3) planejamento a longo prazo. Se estiver em dúvida sobre como e por que sua empresa deve implantar um ambiente de coloração, não gaste dinheiro – e tempo – à toa.

Mas, atenção: apenas 1/4 das páginas da maioria dos grandes portais internos é de material noticioso; 3/4 são compostos por material ‘fixo’, aquele que dá acesso a informações ou instrumentos de trabalho – e voltamos ao parágrafo anterior. Em suma: notícia é ‘conteúdo-âncora’, mas não a principal justificativa para a existência de um portal interno. Acorde – portal não é jornal, é ferramenta de trabalho. E, além disso, atente para o fato de que uma notícia precisa permanecer duas semanas na primeira página de um portal (ou da gerência, ou da área etc.) para ser consumida pela maioria dos empregados que costuma acessar o portal. Deixe o vício da ‘notícia nova a toda hora’ para os veículos noticiosos - o que um portal corporativo, definitivamente, não é.

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


Se você sonha alto em seus projetos web, melhor ter um servidor que o acompanhe.

Novo

Novo

Conheça o novo Jelastic Cloud Locaweb. Faça o deploy agora mesmo e use por 14 dias grátis.

Jelastic Cloud Locaweb Tecnologia inteligente para seu projeto ir mais longe. Locaweb.com.br/Jelastic

Locaweb.com.br

Copyright© 2013 Intel Corporation. Todos os direitos reservados. Intel, o logo Intel, Xeon e Xeon Inside são marcas de propriedade da Intel Corporation nos EUA e em outros países.

Traga o seu servidor para voar mais alto com o novo Jelastic Cloud Locaweb, agora com suportes Ruby e Python, SSH, APIs e Marketplace com mais de 100 aplicativos pré-instalados. É mais facilidade no deploy, cloud escalável e previsibilidade de custos para seus projetos.


72 > Código Livre

Informações e dicas sobre projetos Open Source Por Kemel Zaidan, evangelista Locaweb em tempo integral e de software livre nas horas vagas

Chocolatey Nuget Chocolatey é um gerenciador de pacotes, semelhante ao apt-get, porém para Windows. Com ele, é possível instalar facilmente, a partir da linha de comando, uma infinidade de aplicativos open source como Vim, Arduino IDE, Nodejs e Ruby. Além disso, estão disponíveis freewares para Windows, como o editor de texto hipster, Sublime Text, e versões para uso pessoal (limitadas) de aplicativos da Microsoft, como Visual Studio e SQL Server. Se você está acostumado ao workflow do Linux, mas encontra-se forçado a usar uma máquina Windows, vai gostar bastante deste programa. https://chocolatey.org

Omeka Omeka é um CMS desenvolvido com instituições acadêmicas, museus, arquivos e galerias em mente. Com ele, é possível armazenar e disponibilizar qualquer tipo de conteúdo (áudio, imagem, vídeo etc.) de uma forma rica e flexível. Por seguir o padrão Dublin Core, ele suporta uma grande quantidade de conteúdo, que pode ser facilmente encontrado e recuperado por ferramentas automatizadas de indexação. http://omeka.org/

deveria!), pode tentar usar o Koala para compilar os seus códigos em uma GUI. O interessante do Koala é que ele é um aplicativo web multiplataforma para desktop feito com node-webkit. http://koala-app.com/

Linux Dash O Linux Dash é um programa que permite monitorar seus servidores Linux, fornecendo dados importantes como utilização de CPU, consumo de memória RAM, processos em execução, espaço em disco, rede etc. Ao contrário de outros programas do tipo, a instalação é ultrassimplificada: basta clonar o repositório git do software (ou descompactar o pacote zip) na raiz do servidor web, e pronto! A única dependência é ter o PHP instalado. Não há necessidade de módulos extras. Outra vantagem é que, por ter uma interface responsiva, o Linux Dash dispensa a instalação de um app dedicado no seu celular, para que você tenha acesso a esses dados. A restrição de acesso deve ser feita via .htaccess ou outro mecanismo do tipo. http://www.linuxdash.com

Koala Less, Sass, Compass e CoffeeScript são alguns dos pré-processadores que têm dado vida nova a antigas ferramentas de front-end, como JavaScript e CSS. Se você é do tipo que não gosta de utilizar Grunt porque ela é uma ferramenta de linha de comando (não

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


Analytics < 73

Criação de Valor Estratégico através de Digital Analytics Por Claudio Oliveira, pesquisador do ESPM Media Lab

Segundo a Digital Analytics Association, Digital Analytics (DA) é a ciência de analisar os padrões históricos de dados vindos de interações digitais, visando a melhoria da performance da empresa e a previsão de tendências de negócios. Essas interações ocorrem em diversos contextos como nas visitas aos sites, uso de apps, comentários em mídias sociais e cliques em campanhas online. O conceito de DA parece um tanto pretensioso, e é mesmo, mas é profundamente baseado na realidade. Empresas como Apple, Google e Facebook que estão entre as mais valorizadas, utilizam DA para se tornarem cada vez mais competitivas. Embora saibamos das potencialidades de DA e de sua importância estratégica, ainda há poucas pesquisas informando como as empresas brasileiras usam esse conceito. Por este motivo, resolvi estudar este tema em minha tese de doutorado apresentada na Escola Politécnica da USP: “Criação de Valor Estratégico através de Digital Analytics”. Este estudo contou com 121 referências bibliográficas e documentais, pesquisa com 76 executivos, análise de 12 mil posts em fóruns especializados e 7 estudos de caso em empresas operando no Brasil.

O conceito de DA parece um tanto pretensioso, e é mesmo, mas é profundamente baseado na realidade

A pesquisa mostrou que 67% dos executivos deseja capturar dados de concorrentes na Internet para realização de benchmarks. Isso mostra o potencial que DA possui para incrementar a inteligência competitiva das empresas. Saber como os consumidores se portam na presença digital de seus concorrentes é um belo parâmetro para melhorar a presença da própria empresa na Internet. Atualmente existem pesquisas de mercado como ComScore e Nielsen que coletam esses dados através de painéis de internautas.

Embora saibamos das potencialidades de DA e de sua importância estratégica, ainda há poucas pesquisas informando como as empresas brasileiras usam esse conceito O monitoramento de mídias sociais é citado por 58% dos entrevistados, mostrando a alta preocupação com as opiniões que os consumidores externam sobre as marcas nessas mídias. 53% dos executivos elegem como prioridade a captura de dados de não clientes na Internet para geração de negócios. Isso é coerente com as propagandas que vemos na Internet e que são baseadas no histórico de navegação dos consumidores. Em menor grau, 48% dos executivos verificam informações do comportamento dos usuários no site da empresa.


74 > Analytics

Ao compararmos estas expectativas dos profissionais de negócios com as preocupações dos profissionais que implementam e realizam as análises, verificamos uma enorme lacuna. A maior parte dos profissionais está preocupada em analisar os dados de navegação nos sites,

Alinhamento entre estratégia e TI vs aplicação de DA

dedicando menos ênfase para análises de mídias sociais e tendências dos consumidores. Isso aponta um cenário preocupante, de falta de alinhamento entre as necessidades dos executivos e a entrega dos analistas.

Saber como os consumidores se portam na presença digital de seus concorrentes é um belo parâmetro para melhorar a presença da própria empresa na Internet

Os estudos de caso em sete empresas mostraram que aquelas que possuem maior alinhamento entre a estratégia de negócios e a tecnologia da informação conseguiram aplicar melhor as informações de DA criando valor estratégico para o negócio. No entanto, onde este alinhamento é baixo, DA criou pouco valor, mesmo em empresas que investiram bastante em tecnologias de monitoramento. A boa notícia é que até mesmo empresas pequenas podem ter excelentes resultados com DA se utilizarem as informações de forma estratégica. Cito o caso da Banda Mais Bonita da Cidade, que ficou famosa com a viralização do ví-


75 > Analytics

Analytics < 75

deoclipe Oração, no Youtube. A Banda verifica as preferências de seus fãs na Internet para definir a rota de sua turnê e saber que músicas devem ser gravadas no próximo álbum, num processo de colaboração com seus consumidores que se mostrou rentável. Outras empresas analisadas se valeram de palavras-chave digitadas pelos clientes para chegar em seus sites, para ter insights de novos produtos e serviços. São ideias possíveis para qualquer empresa que queira analisar essas informações com ferramental extremamente acessível. Uma vez concluída a tese, pensamos em novas formas de aprofundar essa pesquisa, devido ao interesse mostrado pelo público em diferentes fóruns como o Google Analytics User Conference e a Feira de Empreendedorismo da FIESP. Por conta disso, o Centro de Altos Estudos da ESPM financiou uma continuação da pesquisa, onde pretendemos relacionar as diferentes variáveis de Digital Analytics com a competitividade das empresas e consequente resultado nos negócios gerados. Em parceria com o ESPM Media Lab, criamos o Índice de Presença Digital. Na primeira fase do estudo, analisamos dados da própria ESPM para cálculo do índice. Na fase atual, estamos analisando outros mercados e aceitando indicações de empresas que queiram participar do estudo, interessados podem entrar em contato pelo site espm.br/ medialab. Os resultados da pesquisa serão divulgados no 2º Fórum Digital ESPM Media Lab, previsto para setembro.

Claudio Oliveira é pesquisador do ESPM Media Lab, Professor da ESPM, Fundação Vanzolini – USP e do Digicorp da ECA-USP. Graduado, mestre e doutor pela Escola Politécnica, pesquisador com diversos artigos publicados em congressos e periódicos internacionais, é sócio da Cognitive Consultoria e trabalha com Digital Analytics desde 2000 em grandes projetos. http://br.linkedin.com/in/cloliveira | coliveira@espm.br


76 > Tecnologia do Futuro

O futuro não está tão distante Por Flávia Jobstraibizer, Analista de Sistemas, Editora-chefe das Revistas Linux Magazine e Admin Magazine

As previsões feitas há algum tempo pelos analistas de mercado do Gartner, sobre como seriam os próximos anos da tecnologia, não estavam totalmente erradas. Um apanhado dessas previsões e análises foi feito em 2012 e divulgado pelo Portal Terra: http://ow.ly/ Gc4RE. Em uma das previsões, estava a constatação de que no ano de 2013 as redes sociais representariam grande porcentagem do investimento em publicidade. A tendência não apenas realizou-se e consumou-se, tendo as redes sociais como um dos maiores aliados das empresas na atualidade, como deve permanecer por pelo menos mais uns dois ou três anos, e se depender da velocidade do mercado, novas redes sociais (ou modelos de negócio baseados em redes sociais) devem surgir e absorver a crescente demanda da aproximação do público com a empresa. Outra análise previa que em 2016 metade dos e-mails corporativos seria lida em dispositivos móveis. Essa realidade já chegou aqui em 2014, e grande parte das empresas ou adotam BYOD, ou possuem iniciativas para que seus colaboradores utilizem smartphones e tablets corporativos para os mais diversos fins (que incluem e-mail).

A tendência não apenas realizou-se e consumou-se, tendo as redes sociais como um dos maiores aliados das empresas na atualidade

É curioso pensar que há apenas dois anos as previsões tendiam a nos fazer pensar que levaria cerca de 5 anos para que o mercado móvel dominasse o desktop, que a nuvem passaria a ser requisito fundamental para a contratação da infraestrutura de TI empresarial e que o mercado de segurança da informação e combate ao cibercrime seria um dos custos mais representativos de uma empresa. Essas tendências, que eram previsões para os próximos anos, tornaram-se realidade rapidamente e, em 24 meses, por exemplo, já mostraram que são realidade e permanecerão em crescente demanda pelos próximos anos. Seguindo essa linha, podemos prever que pelo menos 50% do comércio delivery de grandes empresas serão feitos por drones robotizados, que as casas inteligentes (com videomonitoramento, fechaduras biométricas e que avisam via SMS o proprietário da casa caso algo pareça errado) estarão totalmente inseridas na vida e no dia a dia das pessoas comuns. Será corriqueiro, em menos de 5 anos (fazendo uma previsão longa), que nossas roupas com chip nos mandem análises cardíacas ou mesmo de ácido úrico pelo contato com a pele. Serviços médicos poderão ser extremamente automatizados através da presença de robôs cirúrgicos (hoje em promissores testes em grandes hospitais), que serão comuns nas salas de cirurgia, e que os dispositivos móveis, cada vez menores e mais leves, se tornem uma parte do seu corpo, seja hologra-


Tecnologia do futuro < 77

É possível manter soluções robustas para virtualização utilizando software open source. Conheça as ferramentas com as quais você pode se beneficiar ficamente, através de tecnologias vestíveis (e por que não, por meio de chips inseridos no corpo), ou mesmo tão inteligentes que entendem via gestos ou pensamento as vontades do usuário.

em nuvem passariam a cobrar taxas extras derivadas do aumento de consumo e de uso de energia elétrica, portanto, todas as ações nesse sentido serão fundamentais e de grande impacto no futuro.

Novos anos sempre trazem tais reflexões para nossa vida. Algumas delas são profundamente esperadas, como o BitCoin, que poderá se fortalecer como moeda virtual, assim como a tecnologia NFC, que já é considerada “antiga” fora do Brasil, passará a comandar muitas das nossas ações do dia a dia e, enfim, será o padrão para pagamentos móveis (otimismo!).

E por falar em futuro, este nos mostra que está cada vez mais perto e que não temos tempo a perder!

Seguindo essa linha, podemos prever que pelo menos 50% do comércio delivery de grandes empresas serão feitos por drones robotizados, que as casas inteligentes (com videomonitoramento, fechaduras biométricas e que avisam via SMS o proprietário da casa caso algo pareça errado) Diferenciais tecnológicos que incentivem a preservação de recursos naturais - e que em tempos de falta de água são benvindos - também serão fortes tendências. Painéis solares, energia renovável e seus derivados estão cada vez mais acessíveis para consumidores finais, que poderão gerar seus próprios recursos de forma inteligente. O Gartner inclusive previu que em 2016 provedores de serviços

Flávia Jobstraibizer é editora-chefe das Revistas Linux Magazine e Admin Magazine, analista de sistemas, autora de livros de informática e defensora da liberdade digital. Mãe de dois meninos lindos, solteira convicta e workaholic assumida, mantém vários projetos em paralelo nas áreas de TI e terceiro setor. Toca violoncelo, odeia cigarro e adora estudar, aprender, conversar com gente inteligente e tomar Piña Colada de vez em quando. http://flaviajobs.com.br | @flaviajobs


78 > Review

Por que usar Gulp? Por Willian Justen de Vasconcellos e Richard Johansen Antes de explicar o porquê da minha preferência ao Gulp e também falar mais sobre ele, acho que primeiro precisamos entender um pouquinho os conceitos.

automatizadores em JS, tem esta aqui http://ow.ly/HPx0c

Automatizadores de tarefas

Gulp (gulpjs.com) e Grunt (gruntjs.com) são os automatizadores mais famosos em JS e compartilham muitas características:

Automação (do latim Automatus, que significa mover-se por si) é um sistema automático de controle pelo qual os mecanismos verificam seu próprio funcionamento, efetuando medições e introduzindo correções, sem a necessidade da interferência do homem. A automação diminui os custos e aumenta a velocidade da produção. (2004 - Lacombe).

Mas... vamos falar de Grunt e Gulp

• Ambos são feitos em JS e utilizam o NodeJS para rodar • Têm uma comunidade muito ativa e, inclusive, compartilham um contribuidor, Sindre Sorhus (github.com/sindresorhus) • Funcionam através de uma cli no terminal

A web tem evoluído muito rapidamente e, com essa evolução, novos padrões e preocupações acabaram surgindo. Otimizar imagens, compilar CSS, minificar arquivos e testar o site em diferentes browsers são algumas dessas preocupações. Mas definitivamente essas tarefas são muito repetitivas e nada divertidas. Por sorte, existem os automatizadores, que se encarregam de fazê-las para nós. Ah, então é para isso que o Gulp serve? Sim, é para isso mesmo! Mas ele não é o único e nem o primeiro, existem vários, como Make (Unix), Ant (Java), Rake (Ruby) e Grunt (JavaScript). Se quiser uma listinha com vários

Arquivo de entrada

Leitura do Arquivo

• São projetos open source sob a MIT License • Servem praticamente para os mesmos propósitos

Um pouco do Grunt Muito conhecido na área de front-end, foi criado em 2012 por Ben Alman (github.com/ cowboy). Funciona através da configuração de um arquivo chamado Gruntfile.js, que irá gerenciar os vários plugins do ecossistema e cria arquivos intermediários no disco (temporários), até gerar o arquivo final desejado.

Pasta Temp

Modifica do Arquivo

Escreve no Arquivo

Arquivo Final

Leitura do Arquivo

Modifica o Arquivo

Escreve no Arquivo


Review < 79

Como instalar?

todas as configurações do Grunt, tendo algumas opções dentro de cada etapa de configuração, como arquivos e tarefas que são chamadas.

$ npm install -g grunt-cli

Exemplo module.exports = function(grunt) { grunt.initConfig({ less: { development: { files: { “build/tmp/app.css”: “assets/app. less” } } }, autoprefixer: { options: { browsers: [‘last 2 version’, ‘ie 8’, ‘ie 9’] }, multiple_files: { expand: true, flatten: true, src: ‘build/tmp/app.css’, dest: ‘build/’ }

Veja um workflow usando o Grunt, feito pelo Davidson Fellipe: http://ow.ly/HPy4u

Pontos fortes do Grunt • Comunidade grande • Muitos plugins

Pontos fracos do Grunt • Arquivos de configuração muito grandes • Grande número de parâmetros para cada plugin • Processamento lento quando utiliza arquivos muitos grandes • Linha de aprendizado um pouco maior

} });

• Criação de arquivos temporários

grunt.loadNpmTasks(‘grunt-contrib-less’); grunt.loadNpmTasks(‘grunt-autoprefixer’); grunt.registerTask(‘css’, [‘less’, ‘autoprefixer’]); };

A partir do exemplo acima, notamos que é criado um módulo, e ele irá encapsular

Um pouco do Gulp O Gulp foi criado na metade de 2013 por Eric Schoffstall (https://github.com/contra) com o objetivo de simplificar e agilizar o processo, utilizando streams. A informação é transmitida através das tarefas usando o método de pipeline, o que reduz o número de operações I/O.

Arquivo de entrada

Leitura do Arquivo

Arquivo Final

Modifica do Arquivo

Modifica do Arquivo

Escreve no Arquivo


80 > Review

Como instalar?

• Utilização de bibliotecas-padrão em vez de plugins para tudo

$ npm install -g gulp

Exemplo var gulp = require(‘gulp’), less = require(‘gulp-less’), autoprefix = require(‘gulp-autoprefixer’); gulp.task(‘css’, function () { gulp.src(‘assets/app.less’) .pipe(watch()) .pipe(less()) .pipe(autoprefix(‘last 2 version’, ‘ie 8’, ‘ie 9’)) .pipe(gulp.dest(‘build’));

• As tarefas são executadas com o máximo de concorrência

Pontos fracos do Gulp • Menos plugins que o Grunt (precisa mesmo de tantos?) • Comunidade menor

Comparativo

}); Diferentemente do Grunt, o arquivo do Gulp não irá configurar os plugins - ele irá fazer as chamadas das tarefas de forma prática e simples. Os grandes diferenciais são a utilização dos pipes(), que encadeiam as tarefas, e a API básica do Gulp, que possui task(),run(), watch(), src()e dest(). Veja um exemplo de um worflow usando o Gulp: http://ow.ly/HPymD.

Pontos fortes do Gulp • Melhor performance • Arquivo de configuração pequeno e mais fácil de ler • Linha de aprendizado menor • Evita criação de arquivos temporários • Facilidade de uso através dos 5 comandos principais da API • Plugins mais simples e menores

Já faz um tempo considerável que o Gulp foi lançado, então o seu “boom” já diminuiu e agora podemos analisá-lo melhor. De acordo com os dados do NPM, o Gulp continua crescendo e já está inclusive com um número maior de contribuidores no core, o que só demonstra que ele é, sim, uma ótima ferramenta para automatização de tarefas e é bastante aceito na comunidade.


Review < 81

Performance As tarefas foram executadas no meu MacBook Air 2014 (1.4 GHz Intel Core i5 - 8Gb Ram - 256Gb SSD). Para fazer um teste mais pesado, optei por carregar todos os arquivos do Bootstrap (Sass e JS). Tarefa Sass UglifyJS

Gulp 0.821s 80ms

Grunt 1.870s 815ms

Podemos notar que o Gulp leva uma boa vantagem nos tempos de compilação, e isso se deve ao fato de ele utilizar as Streams, não precisando criar arquivos temporários.

Por que Gulp? Como mostrado acima, o Gulp é mais fácil de utilizar, tem melhor performance e é escrito em cima de código em vez de configuração, como no Grunt. Ele possui plugins para a maioria das tarefas utilizadas normalmente, é mais fácil de escrever plugins para tarefas ainda não existentes e, apesar de ter uma comunidade menor que a do Grunt, é bastante grande. Como eu priorizo facilidade e performance, não pensei duas vezes em utilizá-lo no meu workflow.

compilação dos arquivos? Teste o Gulp - ele pode ajudar bastante nisso. Eu tinha uma máquina mais modesta antes e como não era SSD, as tarefas de leitura/escrita eram bem mais lentas, e o Grunt fazia piorar ainda mais; então mudei para o Gulp e tive um belo ganho de velocidade. O mais importante de tudo é passar a utilizar um automatizador, o que irá lhe permitir ter um padrão bem melhor nos seus projetos e ganhar um tempo considerável.

Busque conhecimento • GruntJS - http://gruntjs.com/ • GulpJS - http://gulpjs.com/ • State of Grunt - http://ow.ly/HPyH4 • Gulp - The vision, history and future of the project - http://ow.ly/HPyKA • Grunt vs Gulp - Beyond Numbers http://ow.ly/HPyOp • Building with Gulp - http://ow.ly/HPyV5 • Slides of Gulp - http://ow.ly/HPyXS • Gulp, Grunt, Whatever - http://ow.ly/HPz2v • Gulp: O novo automatizador - http://ow.ly/ HPz5B • Bye bye Grunt.js, hello Gulp.js! - http://ow.ly/ HPz8M

Devo partir para o Gulp então? Essas perguntas sempre aparecem, e a melhor resposta para elas é: “Depende!”. Se você já está confortável com a configuração do seu sistema atual, você realmente tem necessidade de mudar só porque dizem que é melhor? Você está começando agora a montar seu workflow? Se a resposta for sim, então vale a pena olhar para o Gulp, ele será mais fácil de aprender e você já terá as vantagens dele. Você está tendo problema de demora na

Willian Justen de Vasconcellos é desenvolvedor front-end que ama trabalhar com desafios e projetos criativos, trabalhando atualmente no Queremos! É entusiasta de tecnologias web e evangelista de SVG. @Willian_justen | github.com/willianjusten | willianjustenqui@gmail.com Richard Johansen é lead front-end developer na Futura Networks, membro do GT de Acessibilidade do W3C Brasil. É um pesquisador apaixonado por tecnologias ligadas a openweb, front-end, semântica e cross-browser. Atualmente desenvolve interfaces atuando principalmente nos seguintes temas: webstandards, web semântica, acessibilidade, html5, css3, design responsive e openweb plataform. @ridjohansen | github.com/ridjohansen | ridjohansen@gmail.com


82 > Criatividade Tecnológica

A festa dos Nerds Por Fabio Lody, Diretor de Arte do iMasters

Comic Con Experience, que aconteceu em dezembro, em São Paulo, trouxe excelentes atrações e ótimas opções para fanáticos em action figures

Estive na Comic Con Experience - CCXP. Se tivesse que resumir tudo em uma palavra, seria um sonoro “uau!”. Foi realmente uma experiência incrível poder vivenciar um evento desses, no mesmo nível da versão americana. Aqui no Brasil, a feira foi realizada pelo site Omelete e pelo estúdio Chiaroscuro. Como era de se esperar, reuniu grandes marcas da cultura pop no Brasil, fãs e artistas. A organização declarou que foi um sucesso de público, e não é de se espantar, já que o evento virou ponto de encontro de todas as gerações de nerds e de profissionais do ramo - cerca de 100 mil pessoas passaram por lá, e alguns expositores geraram mais vendas nesses quatro dias do que em todo o mês de novembro, incluindo o Black Friday. Fãs de quadrinhos, cosplayers com fantasias minuciosamente preparadas, youtubers e blogueiros, famosos ou não, puderam ver de perto os convidados ilustres, que tanto encantam nas edições gringas. Sean Astin (O Senhor dos Anéis/Os Goonies), Edgar Vivar (Sr. Barriga), Brad Dourif (dublador de Chucky – Brinquedo Assassino / O Senhor dos Anéis), Jason Momoa (Conan / futuro Aquaman), Jim Morris (presidente da Pixar), Maurício de Sousa, e muitos outros, marcaram presença na Comic Con para falar de futuros projetos e novidades.

Expositores precisaram repor os estoques por diversas vezes. Desenhistas que autografavam material ficaram sem originais para vender já na sexta-feira, porque a demanda foi muito maior do que a esperada. Eu mesmo não consegui encontrar tudo o que me propus a procurar ali – e olha que fui na quinta e na sexta-feira. Os cosplayers são os grandes animadores do evento. O Brasil tem campeões mundiais de cosplay, mas que sempre enfrentam dificuldades de mostrar a sua arte. Levando em conta esse público especial, o evento ouviu os principais cosplayers do Brasil e criou espaços dedicados a eles, como um camarim.

“A organização declarou que foi um sucesso de público, e não é de se espantar, já que o evento virou ponto de encontro de todas as gerações de nerds e de profissionais do ramo” Vi muitos Coringas, Batmans, Darth Vaders e outros tantos personagens que eu nem conheço, todos ostentavam suas roupas, mes-


Criatividade Tecnológica < 83

Fãs de quadrinhos, cosplayers com fantasias minuciosamente preparadas, youtubers e blogueiros, famosos ou não, puderam ver de perto os convidados ilustres, que tanto encantam nas edições gringas mo com o calor, apenas pelo prazer de posar para os celulares dos curiosos ou, quem sabe, de ganhar até um prêmio no concurso. Ano que vem tem mais, e a organização já falou que será maior, agora que o mercado já provou que tem, sim, espaço e procura para uma Comic Con. Ivan Costa, sócio da CCXP, explicou, na abertura do evento, que o objetivo é a transformação do mercado, provando para o fã brasileiro que investir caro num produto original, ou num evento bem estruturado, é mais interessante do que incentivar a pirataria ou se contentar com alternativas de baixa qualidade. No geral, a CCXP foi muito bem recebida pelo público e com certeza superou todas as expectativas. As minhas, com certeza. Como bom nerd, passei anos da minha vida aguardando por algo desse porte! Foi uma experiência sensacional poder fazer parte desse evento histórico que oi a 1ª Comic Con Experience.

Fabio Lody é Diretor de Arte do iMasters e colunista de Photoshop. Desenvolveu trabalhos para vários países, foi aluno de Alexandre Wollner e participou da equipe de criação de projetos como Lollapalooza Brasil, Centenário do Santos, Centenário Vinícius de Moraes, Futebol Run, Expo Money, Super Bike Series, Galinha Pintadinha, FIC, MMA Rocks entre outros. Conquistou o Best Mkt Design 2012 com a marca do centenário do Santos. É praticante de Krav Maga e está há 11 anos nessa vida maluca de subir/descer a serra todos os dias por morar em Santos. @fabiolody


84 > Gestão

ROI em programação Por Guilherme Serrano, programador e empreendedor, sócio do Eu Compraria e da GS Solutions

ROI (return on investiment) é o termo utilizado para definir o quanto se obteve de retorno sobre determinado investimento. Na área digital este termo é bastante comum entre a equipe de negócios, marketing e gestão de projetos mas em muitas organizações ainda é incomum a participação do time de TI para avaliar o ROI de projetos web. Investidores e empresários sempre foram familiarizados com a cultura “data driven”, onde todas as decisões são tomadas com base em dados, para ampliar seus lucros. Em se tratando de produtos digitais, os programadores - responsáveis por grande parte do custo do produto - podem contribuir muito com um ROI mais positivo, e é isto que abordaremos neste artigo.

Performance e metas Em “Make Data Usefull”, Greg Linden explicou que, para a Amazon, 100ms de acréscimo na latência reduziu em 1% a conversão de vendas. O faturamento da Amazon em 2013 foi de US$ 74,4 bilhões (http://ow.ly/ FUbF4), portanto, teoricamente, qualquer investimento abaixo de U$740 milhões que resulte em uma redução maior que 100ms teria um ROI positivo.

e descobriu que 500ms a mais para exibir a página de busca reduziu o tráfego em 20% (http://ow.ly/FUbKx). Em 2014 o buscador fez aproximadamente 100 bilhões de buscas por mês. A preocupação com latência está diretamente ligada a experiência do usuário (UX) e quando abordamos este tema devemos estar cientes que a experiência do usuário é muito mais ampla do que os layouts. Cuidar da UX envolve todo o time que desenvolve o produto: infraestrutura, designers, programadores, QA, negócios e atendimento. A boa comunicação entre toda a equipe é determinante para o sucesso na mensuração e otimização de ROI de produtos digitais.

A preocupação com latência está diretamente ligada a experiência do usuário (UX) e quando abordamos este tema devemos estar cientes que a experiência do usuário é muito mais ampla do que os layouts

A boa comunicação entre toda a equipe é determinante para o sucesso na mensuração e otimização de ROI de produtos digitais

No exemplo do Google o teste não era de latência. Era um teste de interface com variação no número de resultados exibidos na página do buscador - foi neste experimento que surgiu o teste A/B com esta nomenclatura. A variante com 30 resultados e 500ms a mais para renderizar, resultou em queda de 20% no tráfego - e foi descartada.

O Google divulgou uma experiência parecida

A implementação de testes A/B é uma forma


Gestão < 85

rápida e barata de começar a tomar decisões com base em dados. A cultura de experimentação e a integração entre o time de programadores e designers pode propiciar resultados fantásticos e facilmente comprováveis. Ter um time com metas bem definidas, autonomia para experimentar e uma boa ferramenta de métricas é a forma mais honesta de justificar investimentos em um projeto digital.

Custo de desenvolvimento e manutenção Matematicamente só existem duas formas de aumentar o ROI: elevando o lucro ou reduzindo o investimento. Em produtos digitais normalmente a programação representa a maior fatia de investimento, e existe um dado alarmante da Human Factors International de que 50% do tempo de um desenvolvedor é gasto com retrabalhos que poderiam ser evitados. O estudo ainda aponta que arrumar um erro antes do desenvolvimento é 100 vezes mais barato que corrigir após implementado. Veja neste vídeo: http://ow.ly/FVsrT

A redução do custo de manutenção de um projeto também é uma excelente forma para melhorar o ROI e está atrelada a boas práticas de desenvolvimento A participação de times interdisciplinares desde o início da concepção do projeto auxilia a reduzir os custos com refação pois, além de propiciar um maior alinhamento da equipe com os objetivos do projeto, permite uma visão técnica para levantar impeditivos e pontos de atenção antes do início do desenvolvimento.

A redução do custo de manutenção de um projeto também é uma excelente forma para melhorar o ROI e está atrelada a boas práticas de desenvolvimento: código legível, reaproveitamento de código e descentralização da informação.

Produtividade Acho quase impossível falar sobre produtividade de trabalho intelectual sem citar Daniel Pink e a sua “ciência da motivação”, que é baseada em 3 pilares: autonomia, domínio e propósito. Se você quer alta produtividade para você ou para o seu time, trabalhe com autonomia para a tomada de decisões, busque projetos onde encontre um propósito com o qual você se identifique e aprenda cada dia mais sobre o que você está fazendo para ter domínio sobre as ferramentas e tecnologias que você usa. Além do ROI, tenho certeza que a satisfação do time vai crescer muito!

Veja mais: Optimizely - Testes A/B http://optimizely.com/

TED - A ciência da motivação (Daniel Pink) http://www.ted.com/talks/dan_pink_ on_motivation

Guilherme Serrano é graduado em desenho industrial e pós graduado em gestão empreendedora. Programador e empreendedor, sócio do Eu Compraria (http:// eucompraria.com.br) e GS Solutions (http://gssolutions. com.br). guilherme@gssolutions.com.br | @gserrano


86 > Conexão Vale do Silício

Memcache em larga escala Por Fernanda Weiden, Gerente de Engenharia do Facebook

Um grande número de websites que se tornam populares e atraem milhares de usuários começa como uma simples arquitetura LAMP: Linux, Apache, MySQL e PHP. No Facebook não foi diferente. Com o crescimento do site, foi necessário encontrar soluções para que o acesso aos dados fosse rápido e mais eficaz do que o acesso direto à base de dados (que no nosso caso também é MySQL). Foi quando começamos a usar memcache. Isso, explico, muito antes de eu chegar por aqui. O memcache é um software que faz armazenamento de pares de chave e valor em memória. Ele oferece uma série de vantagens para as arquiteturas que o utilizam: • O acesso à memória é mais rápido do que o acesso a disco, portanto você proporciona uma melhor experiência aos seus usuários; • Serve como um “escudo” para os seus servidores de bancos de dados, que receberão uma quantidade menor de requisições, já que os acessos ao banco de dados são reduzidos a somente dados solicitados com menor frequência; • Como seus bancos de dados são menos acessados, o hardware desses servidores provavelmente poderá ser menos potente, e terá um tempo de vida maior. A combinação desses fatores contribui para baixar os custos com esse tipo de hardware, que geralmente é mais robusto e, portanto, mais caro que servidores normais.

Uma consequência do uso de tecnologias de cache é que, com o aumento da sua infraestrutura, o cache passa de otimização para necessidade. E como qualquer parte da arquitetura que é vital para o funcionamento do seu sistema, quanto mais limpa e escalável, melhor. Como ampliar o tamanho do seu cache quando um só computador não é mais suficiente para armazenar todos os dados que você precisa? Algumas vezes, os engenheiros acabam criando mais complexidade do que necessário ao ter que implementar uma lógica que saiba para onde enviar cada requisição na camada da aplicação web. Pelo menos o começo é sempre assim. Porém, a simplicidade se torna necessária para garantir a escalabilidade das soluções e também o nível de confiabilidade dos sistemas. No Facebook, a resposta para esse desafio foi dada com uma solução de engenharia com a qual eu trabalho todos os dias: mcrouter. O mcrouter é o roteador do protocolo memcache, que é usado no Facebook para rotear todo o tráfego que tenha origem ou destino em um dos nossos servidores de cache. Em situações de pico, o mcrouter hoje roteia pouco menos do que 5 bilhões de requisições por segundo. No último dia 15 de setembro, foi liberado como Software Livre e está disponível no GitHub sob licença BSD. Basicamente, o mcrouter recebe todas as requisições destinadas ao memcache, e as direciona baseado em regras que você


Conexão Vale do Silício < 87

pode criar para esse roteamento. Essas regras vão desde pooling de conexões, para reaproveitar conexões com os servidores

de memcache, a diferentes esquemas para distribuição de dados entre os participantes de seu cluster memcache.

Utilizando o mcrouter, você pode criar o conceito de pools replicadas, uma resposta ao desafio de alta disponibilidade da sua camada de cache, fazendo com que o próprio mcrouter resolva a escrita de dados nas diversas réplicas dessa pool. Ele também pode fazer o roteamento baseado no prefixo das chaves armazenadas em cada servidor, e assim pode combinar workloads ou cargas similares em alguns servidores selecionados para cada uma desses padrões de carga ou tipo de dados.

vite para experimentar esse “brinquedinho” e analisar seus benefícios para suas arquiteturas em particular.

O mcrouter também monitora os servidores de destino, e marca aqueles que não estejam “saudáveis” como não disponíveis. Quando isso acontece, ele faz automaticamente o failover (ou redirecionamento após falha) para outro destino. Desse modo, assim que o monitoramento interno do mcrouter informa que o destino original está novamente funcionando, as requisições voltam a ser direcionadas para ele. Outras funcionalidades importantes são suporte para IPv6 (Internet Protocol version 6) e SSL (Secure Sockets Layer). Para quem se interessa por cache e gosta de brincar com infraestruturas de larga escala e altamente disponíveis, fica meu con-

E cada vez que você acessar o Facebook, pode ter certeza de que cada requisição de cache está passando por esse codepath.

Github do mcrouter: https://github.com/facebook/mcrouter Licenças BSD: http://en.wikipedia.org/wiki/BSD_licenses Mais informações: http://ow.ly/CpoB4

Fernanda Weiden trabalha com infraestrutura de grande escala, atualmente no time de engenharia do Facebook responsável for caching e segurança. Anteriormente, Fernanda trabalhou no Google, na Suíça, e na IBM, em São Paulo. Participante da comunidade Software Livre desde 2002, foi uma das organizadoras do FISL (Fórum Internacional Software Livre) por vários anos e entre 2009 e 2011 foi vice-presidente da Free Software Foundation Europe.


88 > iMasters Box

iMasters Box Seleção: Flávia Jobstraibizer fjobs@linuxmagazine.com.br - envie suas sugestões de ferramentas! O iMasters Box é um agregador de serviços voltado para desenvolvedores web. Confira aqui alguns dos destaques do Box. Participe, indique a sua ferramenta favorita e tornese um colaborador do Portal iMasters http://bit.ly/indiqueumaferramenta

Poedit

Alpha Fire

Poedit é um software livre e multiplataforma, disponibilizado sob a Licença MIT, utilizado em processos de internacionalização de software para simplificar operações de tradução através do catálago gettext. Diferente de outros editores, ele mostra os dados de uma forma compacta e as entradas são organizadas em uma lista para que a navegação seja mais rápida e imediata. Tem suporte para formatos de plural e compilação automática de arquivos do tipo MO.

Alpha Fire é focada em montar aplicações comerciais em AJAX para Web e dispositivos móveis. Pode-se incluir gráficos, tabelas e estatísticas em suas aplicações, permitindo que os usuários analisem tendências. A ferramenta oferece classes e bibliotecas de JavaScript, além de suporte ao jQuery. O JavaScript é gerado, permitindo seu uso por aqueles que não tem tanta habilidade para escrever código. Alpha Fire é o primeiro produto completo para construir e implementar aplicações empresariais HTML5 para mobile e computadores pessoais.

Acesse: http://ow.ly/GbswT

API ConsultaCPF

A API ConsultaCPF é um Webservice para consulta de CPF/CNPJ na SERASA. Existem vários tipos de consultas para análise de crédito que permitem a automação de back-office. Conheça o ambiente de testes (http://ow.ly/Gbv1k) e o ambiente de produção (http://ow.ly/Gbv58).

Acesse http://ow.ly/GbsRt

API Prototype GeoIP

API Prototype GeoIP é uma API para GeoIP, um serviço de localização de IP. Passe o método para localizar um endereço IP e ele retorna as informações de localização, incluindo latitude, longitude, cidade e país. O formato de resposta é em JSON (por padrão) ou XML. Esta API está atualmente em “alpha” e não possui várias funcionalidades.

Acesse http://ow.ly/GbtBR Acesse http://ow.ly/Gbum9


A Stone ĂŠ uma adquirente que nasceu para atender as demandas do mundo digital com uma abordagem de mercado disruptiva, atendimento especializado e uma tecnologia que nĂŁo vai te deixar na mĂŁo. Ligue e converse conosco:



Turn static files into dynamic content formats.

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