revista imasters #14

80
Nós fazemos a Internet no Brasil R$24,00 Maio 2015 / Ano 04 / Edição 14 CEWEB.BR CENTRO DE ESTUDOS SOBRE TECNOLOGIAS WEB NO BRASIL LABHACKER A INVASÃO HACKER CONTINUA BLOCKCHAINS APPS DISTRIBUÍDAS EM UMA INTERNET PÓS-CLOUD #PorDentroDoW3C #pag16 #Comunidade #pag45 #Tendências #pag33 #capa #pag23 Pensando o desenvolvimento FORA DA CAIXA

Upload: imasters-redacao

Post on 22-Jul-2016

254 views

Category:

Documents


9 download

DESCRIPTION

Que tal usar linguagens tipicamente web para desenvolver outras coisas? Pensar o desenvolvimento fora da caixa é o tema de capa desta edição, que ainda traz um artigo especial sobre Blockchains, novidades sobre o Ceweb.br e mais.

TRANSCRIPT

Page 1: Revista iMasters #14

Nós

faze

mos

a In

tern

et n

o B

rasi

lR

$24,

00

Mai

o 20

15 /

Ano

04

/ E

diçã

o 14

CEWEB.BRCENTRO DE ESTUDOSSOBRE TECNOLOGIASWEB NO BRASIL

LABHACKERA INVASÃOHACKERCONTINUA

BLOCKCHAINSAPPS DISTRIBUÍDASEM UMA INTERNET PÓS-CLOUD

#PorDentroDoW3C #pag16 #Comunidade #pag45#Tendências #pag33

#capa #pag23

Pensandoo desenvolvimento

FORADACAIXA

Page 2: Revista iMasters #14

ACESSE WWW.FIAP.COM.BR/SHIFT

INOVAÇÃO

EMPREEDEDORISMO

TECNOLOGIA

GESTÃO DE PROJETOS

BEYOND

Aprenda na prática como desenvolver processos e metodologias para gerar impactos positivos por meio da inovação em sua empresa ou negócio.

Aprenda como captar recursos para sua startup, criar produtos e serviços vencedores, administrar finanças, negociar estrategicamente com executivos e muito mais.

Explore tecnologias como Big Data, Internet das Coisas, Desenvolvimento de Apps, CCNA Routing & Switching, Java, C# e outras grandes tendências do mercado com constante demandas.

Domine todas as etapas da gestão de um projetos: definição de escopo, avaliação de custos e riscos, controle de qualidade e administração de recursos entre outras coisas.

Explore temas como Digital Branding, Social Media, Social Branding, Creative Thinking e Storytelling.

MAIS DE 30 CURSOS DE CURTA E MÉDIA

DURAÇÃO NAS ÁREAS DE TECNOLOGIA,

EMPREENDEDORISMO, PROJETOS E INOVAÇÃO.

SHIFT irá inspirar mentes transformadoras, quebrar paradigmas, promover a ousadia, criar tendências, buscar o ineditismo em cada solução e acima de tudo, tirar você de sua zona de conforto.

Experimente SHIFT. Reinvente-se. Deixe a marca da transformação em sua carreira.

INSPIRAÇÃOQUE TRANSFORMA

Page 3: Revista iMasters #14

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, Breno Oliveira, Bruno Rodri-gues, Christiano Anderson, Fabrício Matos, Flávia Jobstraibizer, Guilherme Oderdenge, Ivo Nasci-mento, João Batista Neto, João Freitas, Kemel Zaidan, Kleber Bacili, Laura Lou, Leandro Vieira, Lucílio Correia, Reinaldo Ferraz, Ricardo Azevedo.

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 [email protected] 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.

Page 4: Revista iMasters #14

Se você tem uma opinião sobre determinado assunto, ou mesmo um método de trabalho que funciona, talvez tenha um pouco de dificuldade em mudá-lo - não se mexe em time que está ganhando, não? No entanto, estar aberto a novas propostas pode trazer benefícios diversos, como tempo e menos trabalho (ou retrabalho).

No caso de linguagens de programação, se você consegue pensar de forma diferente, pode até mesmo encontrar um novo caminho profissional, utilizando basicamente as mesmas ferramentas. Por exemplo, por que não utilizar PHP e JavaScript para projetos que não são de web? Esse é o assunto do artigo especial desta edição, escrito por João Batista Neto.

E por falar em “Web fora da web”, leia a coluna de Ricardo Ferraz para entender melhor o que é o Ceweb.br, novo departamento do NIC.br. O Centro de Estudos sobre Tecnologias Web, criado no início deste ano, tem foco em experimentações e promoção de tecnologias abertas, além de fornecer subsídios para a proposição de políticas públicas tendo a plataforma web como principal propulsor para a inovação social. A web caminha a passos largos para fazer parte cada vez mais do nosso dia a dia, agora em carros, eletrodomésticos e acessórios pessoais, e o Ceweb.br será fundamental para fazermos isso de forma melhor.

A edição 15 da Revista iMasters ainda traz artigos sobre tecnologia 4k, conteúdo para web, startups e blockchain. Um texto especial apresenta a história do Labhacker, e na coluna “Por Aí” trazemos uma novidade: a partir desta edição mostraremos o perfil de um membro do Fórum iMasters. São histórias de pessoas que atuam em comunidade, ajudando um ao outro no desenvolvimento pessoal. Aliás, a importância de atuar em comunidade é assunto de outra coluna, Desenvolvimento Zen.

Editorial

Abraços, Rina Noronha Editora - iMasters [email protected]

Page 5: Revista iMasters #14

O PRESENTE Éestudar online.

| CURSOS ONLINE

TOP RANKINGo que estão estudando mais no Cursos Imasters Online

Com uma linguagem simples edireta, os cursos disponíveis naplataforma foram feitos paraatender um público que precisade flexibilidade de tempo paraorganizar a sua grade deestudos.

HISTÓRIAS DA VIDA REAL

O EAD VEIO PRA FICAR

DESENVOLVENDO SITES COM BOOTSTRAP - TREINAMENTO ESSENCIAL

Facebook Marketing

PHP ORIENTADO A OBJETOS TREINAMENTO ESSENCIAL

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

https://cursos.imasters.com.br

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

Rafael Zaia - metrossexuais.com.br

Consegui desenvolver projetos profissionais e lucrar com issoapós fazer basicamente todos os cursos do grupo, hoje a Metrossexuais é um dos maiores E-commerce para o públicoMetrossesual do país.

Antonilza Barros - pinksweet.com.br

Fiz os cursos de e-commerce, pricipalmente de magento econsegui desenvolver a loja virtual da Pink Sweet, voltado para moda feminina e potencializar minhas vendasrapidamente.

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

Page 6: Revista iMasters #14

Capa - Pensando o desenvolvimento: Fora da caixa

Ceweb.brCentro de estudos sobre tecnologias Web no Brasil

Blockchains Apps distribuidasem uma Internetpos-cloud

Labhacker A invasão hacker continua

33

6 > Sumário

23

16 45

Page 7: Revista iMasters #14

A iMasters é uma revista de Tecnologia/Web aberta a novas ideias. Para colaborar envie o seu material por e-mail [email protected]

09 :: Entrevista > Cal Evans e Paul Jones

19 :: API > Os fundamentos da seguranca de APIs

23 :: Capa > Pensando o desenvolvimento fora da caixa

29 :: Tecnologia do Futuro > E a bola da vez e ... 4k!

33 :: Tendencias > Blockchain e apps distribuidas em uma Internet pos-cloud

37 :: Mobile Payment > Hora de ser disruptivo no desenvolvimento de solucoes de pagamento

40 :: Por Ai > Fazendo a internet do Brasil pelo mundo

43 :: Por Ai > Perfil: quem faz a internet no Brasil?

45 :: Comunidade > Labhacker - a invasão hacker continua

49 :: Banco de Dados > Persistencia poliglota e NoSQL

53 :: Cyberlaw > Startups enxutas, porem sustentáveis

57 :: Desenvolvimento > Como eu precisei ver Testes

62 :: Sr. Conteúdo > Diferenca entre Comunicacão e Marketing no meio digital

66 :: Desenvolvimento Zen > Trabalhe (Z|B) em acompanhado

69 :: WordPress > O WordPress e seguro. Inseguro e voce

78 :: Codigo Livre > Informacoes e dicas sobre projetos Open Source

75 :: Desenvolvimento > Seu site tao rapido quanto o Google usando ElasticSearch

72 :: 7Masters

16 :: Por dentro do W3C > Um centro de estudos sobre tecnologias Web no Brasil

Sumário < 7

Page 8: Revista iMasters #14
Page 9: Revista iMasters #14

Passe adiante!Por Por Laura Lou, para Revista iMasters

Cal Evans e Paul Jones, keynote speakers do iMasters PHP Experience 2015, que aconteceu em abril, contam suas experiências para fomentar a comunidade mundial de desenvolvedores.

Cal Evans Paul Jones

Entrevista < 9

Page 10: Revista iMasters #14

RiM - Em que você tem trabalhado recentemente?

RiM - Cal, você poderia falar sobre as iniciativas “Nomad”? Como começaram e por que são importantes para você?

Paul Jones: Aura (auraphp.com) é um projeto continuo; ha sempre mais refinamentos e me-lhorias a serem adicionados. Mais recentemente, eu comecei um projeto chamado Bookdown (bookdown.io). Ele gera páginas HTML similares ao DocBook, a partir de fontes Markdown e JSON (em vez de XML). É otimo para documentacão em narrativa. Pretendo adicionar um conversão PHPDocumentor-to-Bookdown também, de forma que a documentaçao de uma API possa ser in-corporada ao mesmo site.

Tambem terminei o meu segundo livro, “Solving the N+1 Problem in PHP” (leanpub.com/sn1php). É uma sequência de um tópico especifico do “Modernizing…”, que ajuda a melhorar a performance de aplicações quando você construir coleções de objetos entity.

Cal Evans: Meu projeto mais recente foi “Wisdom of the ElePHPant” (wisdomoftheelephpant.com). Escrevi para mais de 20 desenvolvedores PHP, amigos muito mais gabaritados do que eu, e pedi a cada um que contribuisse com dois ou três paragrafos curtos de “sabedoria PHP”. Eles fo-ram reunidos em um livro que muitos de nós agora distribuimos em conferências. Foi um “projeto comunitário” muito divertido de montar.

Cal Evans: A inspiracão para o NomadPHP (nomadphp.com) foi Khayrattee Wasseem (@7php), que mora nas Ilhas Mauricio (África). Ele tinha criado um codinome na comunidade para comparti-lhar entrevistas maravilhosas com diversos membros considerados de alto calibre na comunidade. Mas, por conta de onde morava, ele teria poucas chances de encontrar essas pessoas em uma conferência. Comecei a pensar sobre isso e percebi que havia profissionais em diversas localida-des que nao tinham o beneficio de poder participar de pelo menos uma conferência de desenvol-vedores a cada ano. Foi entao que criei um PHP User Group para levar esses palestrantes até ele.

NomadPHP cresceu ao ponto de termos duas reunioes mensais, uma no fuso da Europa Central e outra no fuso dos Estados Unidos. Cada reuniao conta com um palestrante diferente, que apre-senta uma talk que ja fez em uma conferência. Atualmente, temos empresas que adquirem “Team Tickets”: elas fazem reuniões para assistir às apresentações e discutir a respeito dos assuntos tratados. Estamos muito entusiasmados por ajudarmos equipes inteiras a crescer.

Ao inicio de cada reuniao Nomad, deixamos muito claro que nao somos um substituto para grupos de usuarios PHP locais. Ou seja, se você tem um grupo, esperamos que você se envolva com ele. No entanto, se voce não tiver um, nos nos propomos a ser o seu grupo de usuários locais.

“Você pode fazer tudo sozinho, mas a questão é: por que você faria isso? Deixe a comunidade PHP te ajudar! Envolva-se, per-gunte, responda a dúvidas”

10 > Entrevista

Page 11: Revista iMasters #14

Entrevista < 11

RiM - Em seu livro “Modernizing Legacy Applications In PHP”, eu li a seguinte frase: “Você vai flanar pelo seu código como o vento. Ele terá carregamento automático, injeção de dependências, testes unitários, separação em camadas e controlado no front”. Por que isso é tão importante a ponto de ter te inspirado a escrever esse “guia”, como o livro é chamado na comunidade PHP?

RiM - Resumidamente, seu livro “Cultura do Respeito” trata do porquê investirmos tempo e energia para construir “uma equipe da qual os desenvolvedores querem fazer parte”. Qual foi sua motivação para escrever esse livro?

Paul Jones: Tive a oportunidade de trabalhar em vários lugares diferentes, com missoes igual-mente diferentes. Com isso, esbarrei com os mesmos problemas de codigo aparecendo sempre. Com códigos tao bagunçados como um prato de espaguete, com includes e globals, você fica re-ceoso de encostar em alguma coisa para resolver e acabar quebrando outra coisa em outro lugar. E isso por si só ja significa que os desenvolvedores estao infelizes, sem moral e sofrendo; eles odeiam seus trabalhos, porque é dificil lidar com o código.

Então, muito do trabalho feito nesses lugares tem sido o de fazer o codigo mais fácil de ser traba-lhado. Ao longo de 10 anos, mais ou menos, eu cheguei a uma série de pequenas mudanças que podem ser aplicadas com algum esforco, mas com grande recompensa. O livro “Modernizing” e uma versao ordenada e formalizada dessas mudanças. À medida que elas sao aplicadas, os desenvolve-dores voltam a gostar de seus trabalhos, pois o codigo se torna mais fácil de lidar.

Tudo isso para dizer que a inspiraçao nao foi apenas “melhorando a qualidade da aplicaçao”, mas “melhorando a qualidade de vida do desenvolvedor”. É uma forma de ampliar a felicidade com o trabalho que fazemos diariamente. A meta realmente é uma vida de trabalho melhor e mais satisfatoria.

Cal Evans: Sou desenvolvedor há 30 anos. Nesse tempo, trabalhei com muitos chefes, alguns bons, outros ruins, outros excelentes e outros terriveis. Eu também construi varias equipes na mi-nha carreira. Esta é provavelmente uma das coisas que mais gosto de fazer: construir e gerenciar equipes de desenvolvimento. Ao longo do caminho, reuni inúmeros insights sobre o que é preciso para encontrar, contratar e reter bons desenvolvedores.

A gênese do livro, no entanto, remonta a um artigo que escrevi ha 15 anos intitulado “Nerd Her-ding” (http://blog.calevans.com/nerd-herding/). Se você ja leu “Cultura do Respeito”, vera muitos dos temas tratados em “Nerd Herding”. Em “Cultura do Respeito”, no entanto, tenho 15 anos mais de estrada e experiencia.

Assim, o livro foi escrito para compartilhar meus pensamentos e minha experiencia em uma área na qual muitas empresas apresentam dificuldades para se adaptar. A primeira parte do livro trata de como encontrar desenvolvedores para contratar. Conheço muitas empresas que lutam cons-tantemente para encontrar bons desenvolvedores. Entao, compartilho com elas coisas que fiz, e coisas que vi os outros fazerem.

Page 12: Revista iMasters #14

RiM – Atualmente, temos diferentes estilos de arquitetura para aplicações: o fa-moso MVC, hexagonal, DCI, e microframeworks/microservices. Você enxerga ainda espaço para novos formatos nos próximos anos?

RiM - Você pode falar mais sobre MVC (Model View Controller) e ADR (Action Do-main Responder) em termos de Desing Patterns Arquitetônicos?

Paul Jones: Acredito que novas tecnologias e novas formas de trabalhar surgem, e ha sempre espaço para novos estilos. Mas também acho que esses novos estilos devem ser modificações, re-visões e refinamentos dos antigos, mais do que arquiteturas completamente novas e diferentes.

Paul Jones: Antes de tudo, é preciso lembrar que MVC nao é uma arquitetura de aplicaçao, pois isso é muito facil de esquecer - eu mesmo fiz essa confusao por anos. Model View Controler é um padrao de “interface de usuario” que é aplicado dentro da arquitetura de aplicações, da mes-ma forma que Row Data Gateway é um padrao de dados-fonte que é aplicado em arquiteturas de aplicacoes.

O curioso sobre o MCV é que é um padrao bastante antigo. Trygve Reenskaug o utilizou nos anos 1980, ha 30 anos. Na década de 1990, a Sun decidiu utilizar esse termo para a arquitetura “Model 2”. Eles mantiveram os “noems” dos componentes do padrão (model, view, e controller) mas sub-verteram as relacoes desses componentes, inventando um novo padrão, mas com o mesmo nome. Por isso que MVC “para a web” é diferente de MVC “para desktop”.

Isso nos leva ao Action Domain Responder (pmjones.io/adr). ADR e uma tentativa de nomear os padrões UI que temos que realmente usar no desenvolvimento web, mais do que utilizar errone-amente o nome MVC para descrever o que acreditamos estar fazendo. Um dos pontos centrais do ADR e a camada view. Pensamos no template como a view, mas e realmente uma “resposta HTTP como um todo” que é a view. Tudo o mais sobre ADR parte dessa revelaçao.

RiM - O PHP é, de fato, uma grande linguagem para desenvolvimento web. Mas o que dizer do php-cli? Poderia ser usado para a criação de grandes ferramentas que extrapolariam a web?

Cal Evans: Eu nao sou bom na construçao de interfaces de usuario utilizaveis. É por isso que, provavelmente, usar o PHP a partir da interface de linha de comando (CLI) é o que mais faço. Construi ferramentas para gerenciar sistemas de e-mail usando o php cli, e já palestrei a respeito dele em 2009.

Até recentemente, porém, o PHP tinha um problema. Houve um vazamento de memória que nos impedia de escrever programas de longa duracão. Muito php from the cli foi usado para obter ferramentas ‘hip pocket’. Mas isso foi resolvido. Tenho um script em execucão no meu servidor privado que tem sido executado ha três meses, sem interrupçao. E nao é um “script” ou uma pagi-na da web, e um programa.

12 > Entrevista

Page 13: Revista iMasters #14

Entrevista < 13

RiM – No Brasil, os desenvolvedores têm criado comunidades bastante fortes. Por que é importante para o profissional ser parte de um grupo, e que tipo de experiência e conhecimento ele pode aproveitar ali?

Paul Jones: No minimo, participar de um grupo ensina que você nao é o Melhor E Mais Inteligen-te Desenvolvedor Em Tudo. No geral, cada desenvolvedor tem uma percepcão muito alta de sua própria inteligência, até que ele leva uma “surra intelectual” de outros profissionais. O desenvol-vedor sábio leva isso como uma chance de aprender humildade e ampliar seu conhecimento; o tolo fica ressentido e se rebela contra isso.

Você também pode encontrar grandes amigos e aliados nesses grupos. Eu me acho muito sortudo por ter encontrado bons amigos (como o Cal!) nos meus grupos. Eles me enriquecem, e espero que eu faca o mesmo por eles!

Cal Evans: Eu passei os primeiros 15 anos da minha carreira sendo um “desenvolvedor solo”. Eu nao trabalhava em equipes, nao participava da comunidade, era apenas eu sozinho. Gastei a maior parte desse tempo procurando por respostas que outras pessoas ficariam felizes em me ajudar a encontrar, a compartilhar comigo, se apenas eu estivesse me envolvido e perguntasse. O melhor lugar para ir quando se tem uma dúvida é a comunidade PHP. Claro que existem exceções, mas a maioria dos participantes quer, tem vontade e disposiçao para ajudar.

O outro lado da moeda é que, se alguém te ajuda, é implicito que você também vai ajudar alguém, não importa o seu nivel de experiencia.

Sim, você pode fazer tudo sozinho, mas a questao é: por que você faria isso? Deixe a comunidade PHP te ajudar! Envolva-se, pergunte, responda a dúvidas. Você vai descobrir que é possivel apren-der mais ao ajudar os outros do que simplesmente por pedir ajuda.

O PHP nao é a ferramenta perfeita para fazer isso, mas ele esta ficando melhor a cada lançamento. Algumas das coisas que virao no PHP 7 tornarao possiveis escrever programas melhores e mais robustos que funcionam a partir da CLI.

Com o avanço da IoT, estou ansioso para o dia em que eu poderei escrever um programa PHP executando no meu servidor privado que ira bloquear a porta da minha geladeira, se estiver comendo demais, por exemplo. Espero poder usar o PHP para construir as ferramentas e fazer a IoT acontecer.

“Novas tecnologias e novas formas de trabalhar surgem, e ha´ sempre espaço para novos estilos. Mas eles devem ser modi-ficações, revisões e refinamentos dos antigos estilos, mais do que arquiteturas completamente novas e diferentes”

Page 14: Revista iMasters #14

Cal Evans: 1: Aprenda PHP! É serio, se voce aprender o básico, imediatamente poderá comecar a ajudar pessoas que usam sites em WordPress. O próprio WordPress alimenta boa parte da Internet. Saber como fazer o WordPress funcionar e um excelente ponto de partida.

2: Aprenda um framework! Meu amigo Mr. Paul Jones possui um grande framework, Aura, que fornece um novo conjunto de ferramentas para resolver problemas. Mas não se pode realmen-te aproveitar tudo isso ate entender o proprio PHP. Agora, se o Aura não for o ideal para voce, tente Zend Framework, Symfony, Cake PHP ou Laravel. Continue experimentando diferentes fra-meworks até encontrar aquele que se adapte à maneira como você deseja programar. Mas nao pare por ai, continue experimentando outros frameworks. Sim, e muito trabalho. E e dificil, mas você precisa saber o que acontece no mundo, e com qual framework se sente mais confortavel em trabalhar e por quê.

3: Continue aprendendo! Programacão não e uma carreira estática. Novas ideias são apresentadas o tempo todo. Novas tecnologias surgem o tempo todo e você PRECISA saber o que as pessoas fazem, e como elas se encaixam nos projetos que você estiver construindo. Eu amo o PHP, mas posso escrever código em Java, Pascal e em .NET. Em suma: nao se limite, aprenda o maximo que puder.

4: Envolva-se! A comunidade PHP é uma vibrante e cheia de pessoas que gostariam de ajuda-lo a aprender. Junte-se a seu grupo de usuários PHP locais. Se voce não possui um grupo de usuário PHP local, comece um. Você precisa estar entre seus pares, e mergulhar na comunidade.

5: Compartilhe! Se você usar o PHP para qualquer coisa, estara sobre os ombros de gigantes. A comunidade PHP abraça o principio da “Pay It Forward” (passe adiante). Assim, logo que possivel, comece a compartilhar o que aprendeu. Você pode ser novo na programaçao, mas garanto que aprendeu algo que alguém nao sabe. Entao crie um blog, fale sobre isso, entre no IRC e, quando alguém fizer uma pergunta a respeito, ofereça a resposta. Outros antes de você fizeram o mesmo para que um dia você pudesse estar onde esta, logo esperamos que você também faça o mesmo.

Paul Jones: Se voce já for um empreendedor e tiver um bom plano de negocios, talvez nem precise ir para a faculdade. Provavelmente, voce aprenderá muito na vida real ao tentar construir o seu negócio. No minimo, vai aprender como isso é dificil, e que suas ideias nao valem muita coisa se não forem bem implementadas.

Por outro lado, ir para a faculdade nao vai fazer você gostar de algo que você ja nao goste. Sera um exercicio de disciplina, e isso é muito valioso para empreendedores e empregadores. Você ganha-ra créditos que serao úteis ao procurar um emprego nessa area. Mas você realmente vai aprender mais ao fazer as cosias por si só, mais do que ao fazê-las em sala de aula.

RiM – Tecnologia de Informação é uma das carreiras mais promissoras no Brasil. Muitos jovens brasileiros também possuem fortes habilidades empreende-doras. Qual conselho vocês dariam aos jovens brasileiros que estão prestes a ingressar na faculdade?

14 > Entrevista

Page 15: Revista iMasters #14

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

Conheça melhor e agende suademo em sensedia.com

Expor dados e serviços com segurançaEngajar desenvolvedoresProteger o seu backendGerenciar as dependências de APIs externasMonitorar o seu tráfegoEntender o uso das suas APIs

aaaaaa

Com o API Management Suite da Sensedia você consegue:

Page 16: Revista iMasters #14

Um centro de estudos sobre tecnologias Web no BrasilPor Reinaldo Ferraz, Especialista em Desenvolvimento Web do W3C Brasil

negócios e movimenta recursos financeiros pela rede. Ela está ultrapassando a barrei-ra dos computadores, celulares e tablets. A Web está caminhando a passos largos para fazer parte cada vez mais do nosso dia a dia, agora em carros, eletrodomésticos e acessó-rios pessoais.

A estrutura consolidada do W3C como con-sórcio para a criação de padrões interoperá-veis na Web em conjunto com organizações filiadas criou esse ambiente fértil para inova-ção tecnológica. Esse formato garante que a Web atinja todo seu potencial máximo e pos-sibilitou seu crescimento ao longo do tempo.

A representação do W3C no Brasil acompa-nha de forma muito ativa o modelo aberto e colaborativo da Web. Desde a sua chegada em 2008, o W3C Brasil promove uma Web livre e acessível para todos, com atividades constantes e mantém uma relação mui-to próxima com quem faz a Web: gestores, diretores, representantes governamentais, representantes do setor privado, desenvolve-dores e usuários. Todos, sem exceção, têm papel importante na construção de uma Web melhor.

Com esse novo centro de estudos no Brasil, damos início a uma nova jornada. Acompa-nhando os passos do W3C, o Ceweb.br en-

Em 25 de março, foi oficialmente anunciado o Centro de Estudos sobre Tecnologias Web – Ceweb.br, novo departamento técnico do Núcleo de Informação e Coordenação do ponto BR - NIC.br.

O Ceweb.br foi criado em janeiro de 2015, por iniciativa do Comitê Gestor da Internet no Brasil - CGI.br, e tem foco em experimen-tações e promoção de tecnologias abertas da Web, além de fornecer subsídios para a proposição de políticas públicas tendo a pla-taforma Web como principal propulsor para a inovação social.

Ao lado do W3C Brasil, o Ceweb.br bus-ca também fortalecer globalmente a repre-sentação brasileira da comunidade e obter avanços significativos para a plataforma da Web aberta.

Muitos me perguntaram sobre as atividades do Ceweb.br e como ele vai trabalhar com o W3C Brasil. Explico nos parágrafos a seguir.

O crescimento exponencial da Web e a evo-lução do seu modelo livre e não “proprietá-rio” transformaram o que era um conjunto de páginas HTML conectadas por hiperlinks em uma complexa e dinâmica rede de dados e usuários conectados. A Web é a camada da Internet que conecta pessoas, que gera

16 > Por dentro do W3C

Page 17: Revista iMasters #14

globa a iniciativa de extrapolar as fronteiras dos padrões para integrar novos elementos ao escopo do trabalho e reforçar ainda mais o desenvolvimento da Web no Brasil.

O Ceweb.br se propõe a incentivar novas pautas e ações sobre diversos temas extre-mamente atuais e que já são objetos de es-tudo para a evolução do modelo da Web que temos hoje. Entre esses temas de impacto, posso destacar alguns tópicos importantes de estudos do Centro:

Internet e Web das Coisas - explorar e pro-mover experimentos e estudos especialmen-te sobre o uso de tecnologias Web para a Internet das Coisas.

Pagamentos pela Web - investigar e estu-dar a utilização da Web como plataforma de pagamentos online e seu impacto na econo-mia global

Web e TV Digital - participar ativamente da discussão sobre TV na Web e Web na TV, que vai além do conteúdo entregue ao usuário. O debate sobre as tecnologias envolvidas nesse tema é fundamental para que o modelo de in-teroperabilidade seja preservado no ambiente da TV Digital.

Web automotiva - estudar e participar ativa-mente na construção e elaboração de pa-drões Web para uso em veículos automotivos. A Web móvel cresceu e ganhou motores, que

precisam ser estudados, debatidos e propos-tos em um fórum global de desenvolvimento.

Estudos da Web como interface da nova economia - Muito mais do que colaborar na construção de padrões Web, o Ceweb.br pretende promover estudos de impacto sobre como a Web atua, interfere e principalmente muda o cenário da economia mundial.

A criação do Centro é uma vitória para a Web brasileira. Agora contamos com mais uma en-tidade para expandir o debate e a inovação em fóruns nacionais e internacionais, dando sinergia para as ações já realizadas pelo W3C Brasil sobre padrões da Web aberta.

Participe e acompanhe os projetos do Ceweb.br pelo site www.ceweb.br

Reinaldo Ferraz é especialista em desenvolvi-

mento web do W3C Brasil. Formado em De-

senho 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 Acessi-

bilidade na Web e do Grupo de Trabalho em

Acessibilidade na Web e representante do

W3C Brasil em plenárias técnicas do W3C.

@reinaldoferraz

Por dentro do W3C < 17

Page 18: Revista iMasters #14
Page 19: Revista iMasters #14

As APIs estão por toda parte. Com o “boom” das estrategias digitais em mobilidade, cloud computing, midias sociais e os dispo-sitivos inteligentes da Internet das Coisas, muitas empresas estão desenhando e ex-pondo REST APIs – desde jovens startups ate grandes empresas.

E temos que considerar que 2014 foi o ano em que o assunto “segurança” esteve nos holofotes - desde a Sony Pictures e a Jen-nifer Lawrence (que nada tem a ver com APIs) ate casos como o da Tesla Motors, Snapchat e Bitly, em que vulnerabilidades nas APIs os levaram para os destaques dos portais de tecnologia e seguranca da informacão.

Mas como, entao, sua empresa que ja expõe ou pretende expor APIs pode se preparar para evitar que dados sigilosos de usuarios possam cair em maos erradas? É o que o res-tante deste texto aborda.

Antes de qualquer coisa, é importante de-terminar o nivel de criticidade e o risco ao qual sua API esta exposta. Por exemplo, se os aplicativos que consomem sua API forem apenas apps internos, ou seja, desenvolvi-dos por sua propria empresa, o nivel de ris-co é bem mais baixo do que quando a API possui centenas de apps externos desen-volvidos por outras empresas ou pela comunidade. Outros elementos que tambem devem ser considerados sao: os dados que a API mani-pula são relacionados ao usuá-rio e sao informações sensiveis? A API permite operações que afe-

tam os dados de forma severa (como remo-çao em bulk etc.)?

Dependendo da sua resposta a esses ques-tionamentos, voce poderá saber com mais precisao o risco de se negligenciar questões de segurança. Sugerimos que faça uma clas-sificaçao de criticidade para embasar suas decisoes de design.

Bom, mas partindo do pressuposto que sua API requer a adiçao de certo nivel de segu-rança, agrupamos os 5 principais atributos, bem como as ameacas, vulnerabilidades e dicas de como mitigar os principais riscos.

Os fundamentos da segurança de APIs Por Kleber Bacili, fundador e CEO da Sensedia

Crítico

Intermediário

Básico

Integridade

Autenticação/Autorização

Auditoria

Disponibilidade

Privacidade

API < 19

Page 20: Revista iMasters #14

1. Autenticação e autorização

Primeira e principal preocupacão relaciona-da à exposiçao de APIs. Sempre! Você é real-mente quem diz ser? Você tem acesso a esse recurso? Estas sao perguntas fundamentais. Evitar ataques de força bruta e roubo de cre-denciais sao ameaças relacionadas à auten-ticacão e autorizacão de APIs.

As alternativas de mitigacão desses riscos vão desde uma simples autenticacão Basic HTTP a padroes mais modernos e seguros, como OAuth2 e OpenID Connect.

OAuth2 esta se firmando como principal forma de autorizar acesso a determinado re-curso, especialmente quando o acesso deve ser concedido pelo próprio usuario. Gigantes digitais como Facebook, Google, Twitter, LinkedIn o adotaram.

Você ja deve ter se deparado com uma tela de um dos serviços acima solicitando que voce de permissão para um determinado aplicativo. Pois e, trata-se de um OAuth2, onde o Facebook e o Authorization Server e o TripAdvisor e o Client Application. Nessa situacão, eu, como dono dos dados (Resour-ce Owner), estou concedendo acesso a um determinado escopo de informacoes para o Client Application que, a partir daque-le momento, pode buscar informacoes em meu nome.

Importante destacar que essa pode nao ser a melhor alternativa para a sua API, mas cer-tamente é um padrao que vale a pena ser estudado/considerado.

Vale destacar também que, independen-temente de qual seja o mecanismo de au-tenticaçao/autorizaçao que você escolheu, valem as máximas de nunca salvar tokens em plain-text, não enviar senhas por e-mail e tomar cuidado com forward/redirect de re-quisições em redes desconhecidas.

2. Privacidade

Ataques como Man-in-the-middle e Network Eavesdropping podem revelar dados sensi-veis dos seus usuários. Então, e importante atentar para algumas contramedidas que diminuam o risco de exposicão desse tipo de informacão.

Destaca-se a importância do uso do SSL/TLS e, em algumas situacoes, e ate reco-mendavel que você use um mecanismo adi-cional de criptografia. Além disso, arquivos de log são fontes preciosas de informacoes que nao deveriam estar la, entao, sempre faca o mascaramento de informacoes sen-siveis, como números de cartão de credito, informacoes de saúde etc.

3. Disponibilidade

As APIs estao acessiveis? O desempenho esta satisfatório? Ataques distribuidos de negacão de servico (DDoS) estão entre os mais comuns. Então, como desenvolver as estruturas basicas para resistir bravamente?

A recomendacão básica e instrumentalizar a monitoracão do tráfego nas APIs, prefe-rencialmente com alertas capazes de iden-tificar comportamento malicioso.

20 > API

Desenvolvidos por sua propria empresa, o nivel de risco é bem mais baixo do que quando a API possui centenas de apps externos desenvolvidos por outras empresas ou pela comunidade

Page 21: Revista iMasters #14

Um recurso bastante útil em solucoes de gerenciamento de APIs e a capacidade de limitar o uso dos apps por meio de controles de rate limiting (ou throttling).

4. Auditoria

E se um dos seus clientes alegar que ele nao fez aquele conjunto de invocações à sua API e, portanto, não irá pagar o valor correspon-dente? Esse fenômeno é chamado de repu-diaçao. Como evita-lo?

Logs detalhados são a melhor alternativa. A capacidade de evidenciar o resumo das chamadas recebidas, bem como mostrar os detalhes dessas chamadas, e uma resposta bastante eficiente para a nao-repudiaçao.

Importante destacar que essa pode não ser a melhor alternativa para a sua API, mas certamente e um pa-drao que vale a pena ser es-tudado/considerado

Alguns cuidados especiais devem envol-ver o fato de que arquivos de logs podem crescer (e muito!), e que esses arquivos nem sempre são fáceis de inspecionar / buscar. Uma alternativa interessante e deixar essa tarefa para ferramentas de API management.

5. Integridade

As APIs são como um canal de comunica-cão entre o mundo externo e seu backend. Permitir que recursos criticos sejam apaga-dos requer sempre cautela. Alguns tipos de ataques como injeçao de SQL, XML e JSON podem causar serios danos.

A principal recomendaçao aqui é a busca pela reduçao da superficie de ataque, ou seja, nunca exponha recursos e operacoes que nao precisem ser expostos. Parece ób-vio, mas muitas empresas aplicam tecnicas de geracão automática de APIs a partir dos servicos e dados do backend. Essas tecni-cas, alem de gerarem APIs com design dese-legante e de dificil entendimento, por vezes podem abrir brechas indesejáveis.

Sim, realmente são muitos pontos a levar em consideraçao quando o assunto é segu-ranca de APIs. Alem de tudo isso, nunca e demais lembrar que o ser humano ainda é o elo mais fraco nessa corrente.

Kleber Bacili é fundador e CEO da Sensedia,

empresa especializada em tecnologia de ser-

viços Web - SOA e APIs. É formado em Enge-

nharia de Computação pela Unicamp, com MBA

pela FGV e especialista em Empreendedorismo

e Inovação pelo programa Endeavor, no Insper

e na Stanford University. Professor associado

do Instituto de Computação da Unicamp, só-

cio do fundo de capital semente IVP e também

colunista no portal ComputerWorld. Entusiasta

por tecnologia, geek convicto, palmeirense so-

frido e pai apaixonado da Helena e do Hugo. [email protected] | @kleberbacili

API < 21

Page 22: Revista iMasters #14

Acesse: developers.mercadopago.com

O consumidor pagasem sair do ambiente

do site

Menos etapasno fluxo depagamento

Totalmentecustomizável

Visualização de todos os itens do carrinho durante a finalização de compra

Integre ocheckout transparente do MercadoPago

E aumenteas vendasdos seusclientes

C

M

Y

CM

MY

CY

CMY

K

anuncio_imaster.pdf 1 10/04/15 17:44

Page 23: Revista iMasters #14

Pensando o desenvolvimentofora da caixaPor João Batista Neto, especial para Revista iMasters

Page 24: Revista iMasters #14

Tão logo começamos a trabalhar com de-terminada tecnologia, aprendemos seus objetivos, forças e fraquezas para, então, utilizá-la para resolver problemas. Com o passar do tempo, nos tornamos realmente fluentes naquela tecnologia e, consequente-mente, eficientes ao utilizá-la em determina-do caso de uso. Tão fluentes e eficientes, de fato, que acabamos vendo aquela tecnologia específica como a solução para aquele pro-blema específico.

Não que seja ruim ser fluente numa tecnolo-gia e eficiente na resolução de determinado problema. Ruim é quando enxergamos na tecnologia somente o problema, ou vice-ver-sa. Quando isso ocorre, criamos um enges-samento criativo. Nos tornamos especialis-tas somente na resolução de determinado problema com determinada ferramenta; en-tramos numa espécie de caixa.

Vamos fazer um rápido teste. Responda: qual o propósito da linguagem PHP? Se você disse que PHP é uma linguagem para web, bom, sinto lhe informar, mas você está em uma caixinha.

Não é que você esteja errado, mas está ape-nas parcialmente correto. O PHP também é uma linguagem para web, mas não se resu-me a isso - é uma linguagem de propósito geral, que pode ser utilizada para resolver n tipos de problemas, inclusive para o desen-volvimento para web.

Quando surgiu, o PHP vinha para resolver um problema: desenvolver páginas dinâmi-cas para web. Através de scripts que eram embutidos na marcação HTML, era possível adicionar tornar as páginas mais dinâmicas, permitindo que o conteúdo fosse gerado no momento do carregamento.

Se sempre seguimos pelo caminho comum, dificilmente erramos, mas também dificil-mente criaremos algo novo

O tempo passou, as necessidades muda-ram e, com isso, o PHP evoluiu. Hoje, te-mos uma gama enorme de possibilidades. É possível criar ferramentas de processamen-to de grandes volumes de dados, aplicações desktop com PHP-GTK, adicionar heurística a essas ferramentas para que sejam inde-pendam da intervenção humana. Podemos, também, utilizar o php-cli para criar dae-mons e serviços em background, ferramen-tas de automação de tarefas comuns - como a criação de esqueletos de novos projetos - análise de qualidade código, gestão de de-pendências. As possibilidades são tão gran-des, que desenvolver para web deixa de ser a única possibilidade com PHP e passa a ser só mais uma.

Sucesso fora da caixa

Existem vários exemplos de uso do php--cli para a criação de ferramentas que uti-lizam web, mas que não são para web. O composer, por exemplo, é uma ferramenta para gestão de dependências em PHP que permite que o desenvolvedor declare quais bibliotecas precisa e as instale/atualize sepa-radamente, sem que elas fiquem misturadas ao código:

[neto@localhost project]$ composer install

Loading composer repositories with package information

Installing dependencies (including require-dev)

- Installing symfony/console (dev-master abb1308)

Cloning

abb13086ec995421b82de3a814c3d67075a93768

- Installing symfony/event-dispatcher (v2.6.5)

Downloading: 100%

24 > Capa

Page 25: Revista iMasters #14

Capa < 25

Outro caso interessante é o do sistema de controle de versão git. Antes de ser criado, os sis-

temas de controle de versão seguiam um mesmo padrão - eram praticamente variações uns

dos outros. O kernel do Linux utilizava um sistema chamado BitKeeper, que, apesar de ser

considerado bom, foi envolvido em alguns problemas e deixou de ser gratuito.

Linus Torvalds, ao desenvolver o novo sistema de controle de versão, sabia exatamente o que

não queria. Todos os requisitos para o desenvolvimento do novo sistema eliminavam qualquer

proximidade funcional com todos os outros sistemas existentes na época. Na prática, Linus

tinha um único requisito: pensar fora da caixa.

Hoje, descentralizado e popularizado por ferramentas como Github, Bitbucket e outras,

o sistema de controle de versão Git é um dos mais utilizados por desenvolvedores.

Mais um caso de pensamento fora da caixa ocorreu com JavaScript, que por muito tempo foi uma tecnologia utilizada no client side - navegador do usuário - para adicionar comporta-mentos à uma página. Porém, seu formato assíncrono, com uma boa orientação a eventos, se mostraram excelentes recursos para desenvolvimento em geral, inclusive no server-side.

Com a engine v8 e a criação do Node.js, toda uma nova gama de possibilidades foram cria-das - aplicações não bloqueantes, serviços de streaming de dados, análise em tempo real de grandes volumes de dados etc.

Erros devem ser utilizados como aprendiza-do para que, na próxima tentativa, possam ser corrigidos

[neto@localhost git]$ git log --reverse

commit e83c5163316f89bfbde7d9ab23ca2e25604af290

Author: Linus Torvalds <[email protected]>

Date: Thu Apr 7 15:13:13 2005 -0700

Initial revision of “git”, the information manager from hell

commit 8bc9a0c769ac1df7820f2dbf8f7b7d64835e3c68

Author: Linus Torvalds <[email protected]>

Date: Thu Apr 7 15:16:10 2005 -0700

Add copyright notices.

Page 26: Revista iMasters #14

Ainda, podemos utilizar JavaScript para a criação de aplicações e ferramentas para desktop – no Gnome Shell –, serviços web com Node.js, entre vários outros casos. O próprio Node.js tem sido utilizado como in-fraestrutura para editores, como o Brackets, e tem se mostrado um excelente recurso para esses editores.

Falhas acontecem, e po-dem ser boas

Tendemos a ser conservadores no desen-volvimento de software, seguindo princípios que foram definidos, muitos deles, quando a web ainda era recém -nascida e não tí-nhamos coisas se conectando com outras. Temos essa tendência porque lidamos com problemas delicados e que, às vezes, po-dem causar prejuízos enormes, incluindo, até mesmo, a queda de um avião. Se tem algo que pode ser assustador na área de de-senvolvimento de software, é a ideia de errar. Principalmente se as consequências desses erros forem tão graves.

Mas errar não é ruim. Pelo contrário, é bom. Se sempre seguimos pelo caminho comum, dificilmente erramos, mas também dificil-

mente criaremos algo novo. Sem contar, claro, que aprendemos muito mais com os erros do que seguindo os caminhos padrões já pré-estabelecidos.

O projeto Alky, por exemplo, é um caso de insucesso ao pensar fora da caixa. Muitos que convivem com o ambiente Linux às ve-zes precisam, por algum motivo, utilizar uma aplicação que simplesmente não existe para Linux, ou que as opções disponíveis para Linux são insuficientes para o propósito da pessoa. Para tentar contornar esse proble-ma, é possível utilizar ferramentas como Wine, que permite simular o ambiente Win-dows no Linux e, com alguma configuração, executar determinados softwares no Linux.

A ideia do Alky era ir além. Eles queriam converter os executáveis Windows para que funcionassem nativamente no Linux. O pro-jeto foi abandonado no mesmo ano em que foi lançado, assim como o canal no IRC, e o domínio do projeto está à venda por uma dessas empresas que vendem domínios.

E existem vários casos de projetos para Li-nux, inclusive distribuições malucas, que simplesmente não deram certo. Mas dar er-rado não pode ser motivo para não tentar novamente. Talvez uma falha de projeto, de planejamento ou até mesmo de definição de

26 > Capa

Page 27: Revista iMasters #14

público comprometam o sucesso da ideia. Mas esses erros devem ser utilizados como aprendizado para que, na próxima tentativa, possam ser corrigidos.

Quebrando paradigmas

Para conseguir pensar fora da caixa, é ne-cessário, primeiro, desconstruir a imagem formada sobre determinada tecnologia, der-rubando todas as paredes que o impeçam de ver o que está do lado de fora. Já ouviu alguém dizer que quem está dentro da gar-rafa não consegue ler o rótulo?

Isso se torna especialmente complicado para linguagens, porque, na grande maioria das vezes, o estudo delas começa a partir de ideias que já estão dentro de uma caixa. Quanto mais vemos sobre essas ideias, mais acoplados a elas ficamos.

Se tem algo que pode ser as-sustador na área de desen-volvimento de software, é a ideia de errar. Principalmen-te se as consequências des-ses erros forem tão gravesQuebrar paradigmas significa abrir mão dos conceitos já estabelecidos para, então, ser original. É tornar-se lúcido para tomar de-cisões. É escolher o caminho que se quer percorrer, em vez de simplesmente seguir o mesmo caminho que alguém começou há duas décadas. Se decidirmos ir por de-terminado caminho, que seja uma decisão consciente, e não porque todos estão neste mesmo caminho.

Algumas vezes, um bom caminho é aquele que foi seguido por Linus Torvalds: definir requisitos que eliminam todas as possibi-lidades existentes e, a partir daí, criar algo totalmente novo.

Como pensar fora da caixa

Existem várias listas sobre como pensar fora da caixa. A minha é bem simples:

1. Não acredite em listas que mostram como pensar fora da caixa. Nem nesta.

Seguir listas de como pensar fora da caixa irá, talvez, tirá-lo da sua caixa, mas muito provavelmente irá colocá-lo dentro da caixa do autor da lista. E a ideia é que você não esteja em caixa alguma.

Não é fácil pensar fora da caixa, e não exis-te uma fórmula mágica que vai ajudá-lo com isso. É um exercício mental que devemos fazer a todo instante e começa com um questionamento: por que estou fazendo isso dessa forma?

Compreender o porquê de aquilo estar sen-do feito daquela forma funciona para mim pois me obriga a analisar minhas motivações e decisões. Essa análise me torna um pouco mais lúcido sobre o que estou fazendo.

E se eu errar, bom, pelo menos terei aprendi-do muito mais sobre o problema do que ape-nas estar seguindo pelo caminho de sempre.

João Batista Neto é Engenheiro de Aplicações e tra-balha com ambiente web desde 2000 em diversas linguagens, como Java e PHP, dedicando esforços ao desenvolvimento de bibliotecas reutilizáveis para a comunidade. Especialista em integração de siste-mas, possui várias bibliotecas reutilizáveis publica-das como open-source para a comunidade, como biblioteca Cielo, PayPal, ECT (Correios), BuscaPé, Lomadee, Twitter, Facebook entre várias outras. É administrador do Fórum iMasters e iMasters Code, onde compartilha conhecimento com a comunida-de de desenvolvedores. Também é autor de artigos no Portal iMasters e de cursos no iMasters PRO. @netojoaobatista

Capa < 27

Page 28: Revista iMasters #14
Page 29: Revista iMasters #14

E a bola da vez é… 4k!Por Flávia Jobstraibizer, Analista de Sistemas, Editora-chefe

das Revistas Linux Magazine e Admin Magazine

assim, alguns parâmetros podem medir mais ou menos quanto o olho humano enxerga: o primeiro é a capacidade de detecção de dois pontos, o chamado mínimo ângulo de reso-lução visual, e o segundo é a luminosidade mínima captada pelo olho humano.

Além disso, é preciso levar em conta o cam-po visual que nós temos. Considerando uma série de variáveis de cálculo e nosso ângulo de visão de 120 graus, chegou-se ao valor de 576 megapixels – esta seria a resolução má-xima que poderíamos enxergar. Mas como te-las são diferentes do olho humano, é inegável que em breve vamos realmente atingir o limite aproveitável de uma tecnologia como essa, pelo menos para uso em nossas casas. O

Muito tem se falado da popular resolução de vídeos 4K, que existe em televisores di-gitais e em cinema digital. O termo refere-se à densidade total de pixels na tela, ou seja, 8.3 megapixels, 3840 × 2160 pixels, quatro vezes mais que o padrão Full HD, que é de 2.1 megapixels.

A resolução 4k é apontada como a resolu-ção limite para um televisor doméstico, uma vez que seriam necessários equipamentos cada vez maiores para exibir resoluções além dessa faixa. Segundo o oftalmologista da Unifesp, Paulo Schor, a resolução 4k pode ter superado o limite para o olho humano. A relação entre o olho humano e as telas de alta resolução é muito pequena. Mas, ainda

Confira na imagem abaixo a diferença em resolução das tec-nologias de vídeo existentes versus a tecnologia 4k:

Tecnologia do Futuro < 29

Page 30: Revista iMasters #14

30 > Tecnologia do Futuro

de 2012, grandes marcas já traziam esses dispositivos, e a comoção pela novidade foi enorme. A Copa do Mundo foi a mola pro-pulsora da tecnologia 4k no Brasil. Era uma época em que o dólar estava relativamente acessível, o que facilitou a importação e as aquisições das novíssimas TVs OLED com tecnologia 4k e também nos moveu alguns passos adiante no que tange à transmissão de videos 4k através da grande rede.

Provedores de conteúdo como a Netflix já estão adaptados (em grande parte) para exi-bir vídeos em 4K (o público internacional já se beneficia disso diretamente), tanto no que se refere ao alto tráfego de seus servidores quanto no formato da resolução para exibi-ção de seus filmes.

Os recursos necessários para a exibição de vídeos 4k em streaming e a grande capacida-de de armazenamento desse conteúdo que possui GBs de tamanho são desafios cons-tantes. Melhorias na velocidade de acesso ao conteúdo armazenado com melhor inde-xação são uma das principais necessidades.

O importante mesmo nessa história, na qual as resolu-ções de vídeo são cada vez maiores, é o armazenamen-to e a transmissão de dados necessária para atender a essa tecnologia

O espaço de armazenamento deixou de ser um grande problema, uma vez que se tornou produto de baixo custo. Já o link, que garanti-ria a alta velocidade necessária para acesso ao conteúdo, ainda é um problema. A velocidade de conexão

importante mesmo nessa história, na qual as resoluções de vídeo são cada vez maiores, é o armazenamento e a transmissão de dados necessária para atender a essa tecnologia.

Outdoors e monitores 4k de última gera-ção são amplamente utilizados em par-tidas de jogos, shoppings e centros de compras, onde as telas são maiores e o público está mais distante da tela. É ques-tionável o uso de tecnologias 4k para smar-tphones, tablets e relógios inteligentes.

A resolução 4k é apontada como a resolução limite para um televisor domés-tico, uma vez que seriam necessários equipamentos cada vez maiores para exibir resoluções além dessa faixa

Há algum tempo, Dave Evans, chefe do grupo de soluções de Internet da Cisco, previu que a capacidade de armazenamento de cinco exabytes, criada em 2008, - o equivalente a um bilhão de DVDs - se tornaria rapidamente obsoleta devido ao alto tráfego de dados em vídeo. Como o montante de informação cria-do atualmente gira em torno da casa de 1,2 zettabytes (10²¹ exabytes) e muita da infor-mação criada neste momento já é multimídia, a previsão de Dave é que em breve 90% do tráfego na web sejam vídeo (o que pode ser questionável…). Assim, a era do zettaflood demandará muito das redes.

É claro que lá fora já são comercializados equipamentos munidos da tecnologia 4k, como ultrabooks, TVs inteligentes, tablets e monitores, há bastante tempo. Na feira CES

Page 31: Revista iMasters #14

Para onde vamos em termos de evolução das tecnologias de vídeo? A aposta de empresas de streaming de conteúdo é alta. Vamos acompanhar!

Flávia Jobstraibizer é editora-chefe das Revistas Linux Magazine e Admin Magazine, ana-lista 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 estu-dar, aprender, conversar com gente inteligente e tomar Piña Colada de vez em quando. http://flaviajobs.com.br | @flaviajobs

a tecnologia 4K foram lançadas em 2013 e, muito em breve, é possível que a tecnologia 8k apareça por aqui (para usuários finais, é bom lembrar que sérios problemas com os preços dos equipamentos serão experimen-tados), mesmo que seja questionado o uso real dessa tecnologia por usuários domés-ticos, já que o olho humano não consegue distinguir diferenças entre tantas cores, fato que já foi levantado quando do surgimento da tecnologia 4k.

brasileira está muitíssimo abaixo do espera-do em termos de evolução. Enquanto muitos experimentam conexões em gigabit em suas casas fora do Brasil, ainda apanhamos de conexões na casa dos MB e que não são en-tregues em sua totalidade (contratualmente, e com a conivência dos órgãos reguladores, para completar).

É importante ressaltar que já está em pleno uso a tecnologia de vídeo 8K (o dobro da re-solução 4k, obviamente). As câmeras para

Confira na imagem abaixo a diferença em resolução das tecnologias de vídeo existentes

versus a tecnologia 8k:

Tecnologia do Futuro < 31

Page 32: Revista iMasters #14

#WordPressSeguroO WordPress é Seguro. Inseguro é você.

GUIA PRÁTICO DE IMPLEMENTAÇÕES PARA SEGURANÇA EM WORDPRESS

BAIXE GRATUITAMENTE NOSSO

apiki.com/wordpress-seguro

Page 33: Revista iMasters #14

Blockchain é a tecnologia que permite a criacão de aplicacoes baseadas em crypto-ledgers distribuidas e que promete revolu-cionar a Internet. O potencial disruptivo e tao grande que, para se ter uma ideia, em 2014 foram investidos US$ 315 milhões (cerca de R$ 1 bilhão) em seed money para startups recém-fundadas que trabalham especificamente com essa tecnologia.

Você pode estar se perguntando: “por que investir tanto em aplicacoes baseadas em cryptoledgers distribuidas?” ou ainda “afinal, o que cryptoledger distribuida sig-nifica?”.

Se você se perguntou isso, pode ficar tran-quilo, porque a grande maioria das pessoas de TI ainda nao sabe exatamente do que se trata. O fato é que tem algo importan-te acontecendo no mundo da tecnologia, e nao podemos ficar alheios.

Um novo protocolo para uma nova Internet

Blockchain e a tecnologia por trás da moe-da digital Bitcoin. E é aqui que muita gente

perde o bonde. Enquanto a midia em geral critica e alerta sobre os riscos dos investi-mentos em Bitcoin, dada a sua volatilidade, falham em perceber a inovacão importante que ele introduz, ao resolver um importan-te problema da computaçao que até poucos anos atrás não tinha solucão, abrindo um leque enorme de aplicações que permitem resolver de forma mais eficiente, segura e econômica problemas importantes que afe-tam a todos. E, nesse contexto, a discussão sobre o Bitcoin ser ou não um bom investi-mento torna-se irrelevante.

O fato é que tem algo importante acontecen-do no mundo da tecno-logia, e não podemos ficar alheios

Temos muitos motivos para acreditar que o Bitcoin e as moedas digitais em geral vie-ram para ficar, e que serao cada vez mais adotadas, o que é reforçado pelo fato de grandes nomes como Microsoft, DELL,

Blockchain e apps distribuídas em uma Internet pós-cloudPor Fabrício Matos, BSc., desenvolvedor, empreendedor e especialista em tecnologia Blockchain

Tendencias < 33

Page 34: Revista iMasters #14

34 > Tendencias

Paypal, entre outros, estarem incluindo Bitcoin em seus negocios. Mas não e obje-tivo deste artigo discutir as caracteristicas econômicas especificas da moeda Bitcoin. Nosso foco e mostrar como essa tecnologia ajuda a viabilizar uma serie avancos tecno-logicos, como Internet of Things, decentra-lized cloud, smart properties, decentralized apps (dApps), decentralized autonomous organizations (DAOs) e outros.

Afinal, o que é Blockchain?

Muitos acham que Bitcoin é um dinheiro eletrônico semelhante aos pontos de um programa de milhagem. Definitivamente, não. Ele e totalmente diferente.

A Blockchain e como um livro-razão, um registro de transacoes chamado de cryp-toledger, mas mantido de forma distribuida atraves de uma rede peer-to-peer, e prote-gida por uma parafernalia criptografica que, ao final, permite que transações sejam rea-lizadas diretamente entre um peer A e um peer B, sem qualquer necessidade de um confiar no outro ou de haver um interme-diario de confiança.

Há tempos já manipulamos dinheiro eletro-nicamente. Contudo, nos não somos porta-dores do nosso próprio dinheiro eletrônico. Em geral, ele está “guardado” (registrado) em alguma instituicão bancária de forma

centralizada, e dependemos deles para quaisquer transações. E o motivo é simples. Imagine que você tivesse um arquivo espe-cial no seu computador que representasse R$ 50,00 em dinheiro digital. Como você faria para transferir esse valor para outra pessoa sem uma entidade central? Como garantir que você nao ira duplicar o arquivo ou envia-lo para varias pessoas diferentes? Como a pessoa que estiver recebendo o ar-quivo ira verificar se esse arquivo é o “ver-dadeiro”, e assim impedir um gasto duplo?

A Blockchain e exatamente a solucão dis-tribuida para o gasto duplo. Descoberta em 2008, ela se baseia num mecanismo por meio do qual a rede sempre chega a um consenso sobre qual transaçao é a valida, tornando possivel essa forma de dinheiro virtual transacionado ponto-a-ponto.

É importante entender também que Bit-coin e uma moeda programável. Se alguem transferir 1 Bitcoin para voce, na verdade o que sera feito é o registro de uma nova transacão na Blockchain contendo um “con-trato” que determina em quais condições esse Bitcoin pode ser transferido. E esse “contrato”, na verdade, é um pequeno pro-grama (script). Para conseguir transferir esse Bitcoin, voce precisa ser capaz de for-necer um input que permita o programa ser executado e retornar TRUE. Por exemplo, você poderia ter de provar que é o dono de

O potencial disruptivo é tão grande que, para se ter uma ideia, em 2014 fo-ram investidos US$ 315 milhões (cerca de R$ 1 bilhão) em seed money para startups recém-fundadas

Page 35: Revista iMasters #14

uma chave privada associada a uma cha-ve pública hardcoded no script desse Bit-coin. Por ser programável, diversos tipos de transacoes podem ser criadas, e vários tipos de contratos inteligentes podem ser construidos, cujas cláusulas imutáveis são checadas e autogarantidas pela Blockchain, de forma segura e escalável, eliminando a necessidade de alguém externo que faça valer o contrato. Quem rege a Blockchain e a matemática. E não se discute com a ma-temática.

Muitos acham que Bitcoin é um dinheiro eletrônico semelhante aos pontos de um programa de milhagem. Definitivamente, não. Ele é totalmente diferente

Exemplo de aplicação: Startup Storj.io

A oportunidade de descentralizar, eliminan-do intermediarios e aumentando a eficiên-cia oportuniza muitas inovações. Vejamos o caso da startup Storj.io - http://storj.io.

Storj.io e um tipo de Dropbox distribuido na Blockchain. Uma mistura de Dropbox, Torrent e Bitcoin. Imagine um Dropbox sem servidor para armazenar o conteúdo das pessoas. Em vez de utilizar a infraestrutura própria (ou cloud), seus arquivos serao crip-tografados com sua chave privada e espa-lhados por uma rede P2P rodando sobre a Blockchain. Alem disso, os usuários serão remunerados por manterem conteúdo dos outros em seus computadores.

O cliente Storj.io irá pagar um assinatura, que sera internamente convertida para

uma moeda digital propria (semelhante ao Bitcoin). Nenhum usuário precisa saber ou entender isso. Atraves de contratos inteli-gentes, os peers que provarem que estao mantendo partes do conteúdo do usuário disponiveis serão recompensados. Se com-parado ao Dropbox, o custo estimado do Storj.io será mais 10 vezes menor.

Conclusão

Ficamos devendo uma explicacão mais de-talhada sobre como a Blockchain faz sua mágica. Mas nossa intencão neste artigo foi trazer um olhar para alem do Bitcoin “in-vestimento arriscado”, indo na direcão dos desdobramentos da tecnologia Blockchain do Bitcoin e de suas aplicacoes.

Fabrício Vargas Matos é um empreendedor em

série, com sólida experiência em computação,

que tem nos últimos anos se especializado

em tecnologia Blockchain. Com Bacharelado

em Ciência da Computação e Mestrado em

Métodos Formais/Computação Distribuída

pela UFES, busca combinar o background

acadêmico com mais de 10 anos de expe-

riência empreendedora visando a criação de

novos negócios e startups. É Sócio e CEO da

Qualidata – empresa de produtos de softwa-

re – na qual lidera a equipe de inovação aber-

ta que já gerou 3 spin-offs nos últimos anos.

[email protected] | @iFabricioMatos

Tendencias < 35

Page 36: Revista iMasters #14
Page 37: Revista iMasters #14

2015 é, definitivamente, o ano do pagamen-to móvel. Uma pesquisa da KPMG indicou que 83% dos executivos do varejo de servi-ços financeiros, tecnologia e telecomunica-ções acreditam que, até o final de dezembro, os pagamentos moveis vão ter uma adocão generalizada pelos consumidores. Uma ou-tra pesquisa internacional indicou que uma em cada quatro transações é paga com dis-positivo mobile.

No entanto, para que esse número seja al-cançado, é necessario que o varejo fisico e o virtual sejam cada vez mais inovadores na hora de oferecer ferramentas ao cliente. É hora de ser disruptivo no desenvolvimento de solucoes de pagamento.

Ao ver números como os passados pela pesquisa, é dificil imaginar que existam muitos estabelecimentos que nao possuem nenhum tipo de sistema de controle, seja na frente de caixa, para aceitar cartoes, ou no ERP. Mas esse público – carente de tec-nologia pelo seu custo elevado, ou por puro desconhecimento – deve ser visto como uma grande oportunidade pelo desenvolvedor.

Imagine um programa instalado em um ta-blet, em que o dono de uma pizzaria de bair-ro pode controlar estoque, registrar pedi-dos, administrar o controle de caixa e, ainda, aceitar cartao de crédito, a fim de aprimorar a experiencia de compra do cliente e simpli-ficar toda a gestao da loja. Imaginou?

Os desenvolvedores precisam comecar a pensar em plataformas já conectadas a sis-temas de pagamentos, principalmente em se tratando dos adquirentes de cartao de credito. Somente dessa forma a experien-cia de pagamento se tornará um diferencial para a fidelizaçao do cliente.

APIs e SDKs - Fazendo a integração

Para transacionar informacoes de cartão de credito, são necessários vários itens de se-gurança e certificações, como o PCI DSS 2.0, entre outros.

No entanto, nao deixe que isso atrapalhe o desenvolvimento criativo do aplicativo. É

Hora de ser disruptivo no desenvolvimento de soluções de pagamento

Por João Freitas, desenvolvimento de solucoes de pagamento

Mobile Payment < 37

Page 38: Revista iMasters #14

38 > Mobile Payment

possivel encontrar APIs, SDKs e documenta-ções com tudo o que é preciso para incluir uma funcionalidade de pagamento nas mais diversas solucoes. Essas possibilidades com infraestrutura de captura e transacoes de pagamento das principais bandeiras do mer-cado ja sao oferecidas por alguns adquiren-tes no Pais.

Como funcionaria?

O usuário terá uma transacão de interface que o levara da sua aplicaçao para a aplica-çao do adquirente. Quem se comunica com o PinPad é o aplicativo do adquirente, previa-mente conectado dentro dele.

Na maioria dos casos, o aplicativo já e encar-regado de avisar quando ha ou nao uma co-nexão com algum PinPad. Se o usuário não estiver conectado com nenhum dispositivo, o aplicativo exibirá um botão para buscar e conectar com algum dispositivo.

Conectado o dispositivo e realizada a pri-meira transaçao, cabe ao adquirente, via in-tegracão, responder a transacão, aprovada ou negada, e retornar para o aplicativo que o chamou, enviando algumas informações que foram recebidas do autorizador.

A ideia da integracão e fornecer a experien-cia de integraçao simples e rapida a qual-quer desenvolvedor, e levar a soluçao de

pagamentos com cartoes de credito e debito para todos os lojistas.

A integraçao é feita a partir de um .jar que e adicionado ao projeto do lojista - um me-todo simples fica responsavel por passar os parâmetros para o aplicativo do adquirente, que fara todo o resto, conexao, validações e o processamento da transacão.

Em resumo, se tornar disruptivo na hora de desenvolver soluções que auxiliem o comercio a se automatizar, com gestão e, ainda por cima, tornar o pagamento algo agradável ao cliente, e um novo mercado de oportunidades.

João Freitas é desenvolvedor mobile da Stone,

novo adquirente com soluções inovadores para

um mercado de cartão de crédito em mudança.

A Stone traz ao mercado o Dev Center Stone,

que possibilita ao desenvolvedores utilizarem

a tecnologia de adquirência da marca em suas

aplicações.

https://github.com/jgabrielfreitas

[email protected]

É preciso pensar em plataformas já conectadas a sistemas de pagamentos, principalmente em se tratando dos adquirentes de cartão de crédito, para que a experiência de pagamento seja um di-ferencial para a fidelização do cliente

Page 39: Revista iMasters #14

Conte com os especialistas do Sebrae para ter toda a orientação para a sua loja virtual.

*Projeção Fonte: EBIT

No Brasil e no mundo, o comércio eletrônico cresce a cada ano e pode ser um ótimo canal para pequenos negócios que desejam aumentar o faturamento e conquistar mais público com presença digital. Conheça as soluções e serviços do Sebrae para quem quer montar ou expandir seu negócio on-line em sebrae.com.br/comercioeletronico.

/sebrae @sebrae

Page 40: Revista iMasters #14

Fazendo a internet do Brasil pelo mundo Que os brasileiros têm feito muita coisa, a gente sabe. Mas quem esta 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çao num hackaton, palestra etc. Tudo o que signifique “fazer a internet do Brasil” para voce, cabe aqui! Quer participar? Envie uma foto e descriçao para [email protected]

Cerca de 20 pessoas participaram da 37ª edicão do Encontro de Usuários de Python de Per-nambuco, realizada em março, no espaço do CESAR.EDU, em Recife. O evento reuniu profis-sionais, entusiastas e academicos para discussoes sobre a plataforma Python e suas aplicacoes em diversos nichos como web, sistemas embarcados, computaçao cientifica. O encontro contou com o apoio do CESAR, Centro de Inovaçao de Recife, que é um dos pioneiros do Porto Digital. Saiba mais em www.cesar.org.br

Aconteceu em 25 de abril, em Sao Paulo, o PHP Experience 2015, um dos maiores eventos tec-nicos de PHP da America Latina. Em sua segunda edicão (antigo InterCon PHP), o congresso, re-alizado em parceria com o grupo PHP-SP, reuniu cerca de mil programadores para palestras na-cionais e internacionais, áreas de comunidade e diversas acoes de networking. Paul Jones, Cal Evans, Diana Arnos e Erika Heidi foram alguns dos especialistas que palestraram no evento. As palestras foram gravadas e estarão disponiveis em http://youtube.com/imasters. Você pode ver a cobertura especial aqui http://ow.ly/MbVqw - e se prepare, ainda este ano acontece o DevCommerce (13/06 - http://devcommerce.imasters.com.br - inscricoes abertas!) , o Android DevCon (29/08) e o InterCon (24/10)!

Usuários de Recife promovem encontro sobre linguagem Python

PHP Experience 2015

40 > Por ai

Cré

dito

: K

adu

Pot

inat

ti/V

ideo

clic

k

Page 41: Revista iMasters #14

Modificação de aplicações na plataforma Android

Como criar startups de tecnologia no Brasil?

Semana da Mulher na Tecnologia

Há alguns meses Mauro Pichiliani, Colunista do iMasters, está desenvolvendo um expe-rimento sobre modificaçao de aplicações na plataforma Android. No trabalho, ele explora o potencial de tecnicas para alterar aplicacoes existentes na plataforma Android, de forma que a aplicaçao suporte algumas funcionali-dades colaborativas, empregando tecnicas da engenharia de software experimental para au-xiliar o entendimento de como programadores se comportam durante a tarefa de modifica-coes de aplicacoes.

Os participantes são monitorados atraves da gravacão da tela do computador, logs do siste-ma e face por meio de uma webcam. Este ex-perimento e pioneiro no Brasil por se concen-trar em desenvolvimento Android e por coletar

dados biometricos com Batimentos Cardiacos por Minuto junto com ondas metais captadas diretamente do cerebro do participante atra-ves de um BCI (Brain Controlled Interface). Alem de contribuir para a engenharia de sof-tware experimental brasileira, o experimento possui o potencial de alterar detalhes do sis-tema operacional Android para que ele permita novos niveis de colaboracão entre aplicacoes existentes.

Os resultados serão apresentados junto com a tese de doutorado de Mauro Pichiliani, que tem previsão de conclusão para o 2º semestre deste ano. Interessados em participar podem entrar em contato com ele pelo email [email protected]

Idealizado por Nei Grando, “Empreendedorismo Inovador” reúne 25 grandes nomes especializados em empreendedorismo, tecnologia e startups. O livro é dividido em capitulos que podem ser lidos de maneira independente e que abordam o contexto do empreendedorismo no Brasil, o mercado para empre-sas de tecnologia e carreira e sociedade, alem de trazer orientacoes sobre gestão e modelagem de negocios, networking e criatividade. Entre os auto-res estao Edson Mackeenzy, Gestor de Novos Negócios do Grupo iMasters, e Cezar Taurion, Colunista do Portal iMasters. O livro foi publicado pela Editora Évora e está disponivel para compra no site da editora.

Em março, aconteceu a 1ª Semana da Mulher na Tecnologia, uma celebraçao à igualdade e à inclu-são social por meio da tecnologia. Durante toda a semana seguinte ao Dia Internacional da Mulher, foi promovida uma serie de eventos práticos e discussoes com foco nas mulheres na área de tecnologia, com o objetivo de inseri-las, fortalece-las e oferecer a elas suporte nesse mercado, his-toricamente masculino. A Semana homenageou Alda Lovelace, primeira programadora conhecida. Foram cinco dias de atividades que reuniram desde meninas do ensino fundamental até senhoras da terceira idade. Em uma das ações, a influenciadora digital Camila Achutti liderou avós, maes, filhas e netas para aprenderem a programar juntas, em um hackaton no qual elas desenvolveram ideias de apps que ajudassem nos problemas de relacionamento entre as gerações. http://semanadamulhernatecnologia.com.br

Por ai < 41

Page 42: Revista iMasters #14
Page 43: Revista iMasters #14

Quem faz a Internet no Brasil?

Guilherme Oderdenge e desenvolvedor web focado em front-end. Ele participa do Forum iMasters há oito anos.

Eu “pisei” no fórum do iMasters pela primeira vez em 2007, aos 12 anos. Àquela época, nos meus primeiros passos sobre desenvolvimento de software, eu andava de mãos dadas com PHP e MyS-QL, por serem as tecnologias com a maior abundância de material em portugues da Internet.

Na verdade, talvez “Internet” signifique iMasters, uma vez que a maior parte do meu conheci-mento saiu de lá. Eram bons tempos — eu era um completo iniciante com um desejo enorme de progredir, de construir coisas incriveis e de algum dia ser aquele que ajuda. Nos primeiros meses acompanhando a comunidade de PHP do Fórum, eu ficava com um pouco de medo de me mani-festar — a minha falta de conhecimento dava ênfase à qualidade das perguntas dos meus quase--colegas da “casa”.

Finalmente, depois de alguns meses sendo um anônimo sanguessuga, decidi ir além e efetuar o meu cadastro. Voi là! A partir dai, por mais sensacionalista que isso possa soar, a minha vida mudou.

Aprendi muito. Inclusive muito além do código. Aprendi que nao existe uma linguagem melhor que a outra, mas que elas sao diferentes e em muitos casos sao complementares; aprendi que exis-tem padrões e frameworks; aprendi que existem boas praticas e convenções; e, principalmente, aprendi a aprender.

Hoje, depois de quase oito anos do inicio da minha jornada, tento devolver para a comunidade o que ganhei por tanto tempo: conhecimento. Mas nao foi só a didatica, a parte técnica e até mesmo o português que eu pude aprimorar ao participar da comunidade. Recebi numerosas — e boas — propostas devido aos meus artigos e à minha participaçao na comunidade. Em 2007, eu tinha 12 anos. Hoje, 19. Pode parecer engracado isso tudo vindo de alguem tão jo-vem, mas foram os exemplos de profissionais que eu tive tao cedo que me fizeram almejar, acima de tudo, a carreira que eu tenho hoje — que, apesar de também ser jovem, é incrivel.

oderdenge.com | github.com/chiefGui | twitter.com/chiefgui | www.imasters.com.br/perfil/guilhermeoderdenge

Nesta edicão, comecamos uma parte muito especial dentro da coluna “Por aí” - vamos mostrar quem sao as pessoas que participam do Fórum iMasters e ajudam a fazer a Internet no Brasil.

Perfil< Por ai < 43

Page 44: Revista iMasters #14

SAIBA MAISgerencianet.com.br/desenvolvedores

11:29

C

M

Y

CM

MY

CY

CMY

K

Page 45: Revista iMasters #14

O numero 506 da Alfredo Maia abriga um espaço difícil de descrever, e é possível que quase todo transeunte que já tenha se aventurado a entrar lá e perguntar o que é aquele lugar tenha saído menos informado do que entrou.

Não somos uma lan house, mas temos uma. Temos também uma biblioteca. Nos dois ca-sos, é difícil explicar que, sim, é de graça. Somos também um ambiente de trabalho colaborativo, um ponto de cultura e muitas outras coisas que às vezes nos perguntam se somos. Tem gente que vem aqui pedir ajuda pra imprimir um currículo, pra arru-mar o computador, tem gente que entra só pra saber se temos determinado livro - sem imaginar que os livros ali expostos não são para venda, mas para empréstimo. E outros que entram pra nos oferecer os seus. Fizemos uma parceria com o Pedala Sampa e volta e meia aparece alguém que-rendo alguma coisa relacionada a bicicletas. Às vezes encontra...

O LabHacker abriu as portas discretamente em 2014 e só aos poucos foi tomando fôlego e agregando a equipe que hoje toca o térreo do prédio da Armênia, facilmente identificá-vel, desde novembro, pela fachada grafitada com uma menina de bicicleta. No espaço acontecem oficinas, hackdays, debates, exi-bições de filmes, jogatinas, apresentações

ou o que mais alguém achar interessante e tiver paciência para fazer. O ponto comum é a ética hacker. O que não é um ponto tão comum assim, convenhamos.

Tanto faz se você curte pro-gramação, hardware, jogos de tabuleiro, literatura, cinema, gastronomia, moda ou ciên-cias sociais. Tem um jeito ha-cker de fazer isso

A ética hacker é uma metadefinição. O ha-cker age no mesmo espaço de disputas em que se encontra, corriqueiramente, o próprio termo “hacker”. A nossa dificuldade em acei-tar a pluralidade das coisas e querer defini--las impedem que o hacker, no imaginário popular, seja ao mesmo tempo o perigoso invasor de computadores e o habilidoso resolvedor de problemas. Quando defini-mos, o limitamos, e ser hacker é contornar as limitações (às vezes só pra descobrir se consegue).

Alguém disse certa vez, muito acertadamen-te, que o processo de aprendizado do Ôni-bus Hacker se baseava em “erro, erro, erro, falta de noção, erro” (posso estar deturpan-do um pouco as palavras, mas, afinal, todas as histórias são verdadeiras).

Labhacker - a invasão hacker continuaPor Lucílio Correia, hacker do Labhacker

Oficina de little bits

Comunidade < 45

Page 46: Revista iMasters #14

Oficina Hacker na Kantuta

Oficina de pipas

Como versão menos móvel do ônibus hacker, o LabHacker, sem saber (a maior parte de nós fez o caminho inverso e chegou ao ônibus por meio do Lab), adotou a mesma premissa do seu “irmão mais velho”.

A ética hacker é uma metadefi-nição. O hacker age no mesmo espaço de disputas em que se encontra, corriqueiramente, o próprio termo “hacker”

Entender e estender a ética hacker para além da computação foi uma das grandes coisas que aconteceram comigo no Ônibus Hacker: fui (ou sou?) costureiro, pedreiro, professor, jornalista, catador, ativista, DJ, cozinheiro... conheci muito hacker que nunca escreveu uma única linha de código. Enxerguei hackers na família e em diversos círculos de amizade ou de interesses afins. Achei (e provavelmente só porque eu procurava) espaço pra respeitar e valorizar mais pessoas e saberes diferen-tes dos meus, e gosto de pensar que cresci

com isso.

Recentemente, de repente, nos encontráva-mos na primeira ação Ônibus + LabHacker, uma invasão na Praça Kantuta, uma praça com Wi-Fi a poucos quilômetros do LabHa-cker. Tal qual a rua onde estamos instalados, a Kantuta é um tipo de bolsão de baixa renda, menos distante do que as periferias de São Paulo, mas igualmente invisível.

Tentamos fazer uma cisterna, “contação” de história, oficina de pipas, tentamos transmitir tudo via streaming pela Internet, lidar gentil-mente com “a imprensa”, tentamos fazer uma sessão de cinema ao ar livre. Conseguimos fazer muitas coisas: algumas até do jeito que foi planejado, e outras acidentais.

Achei (e provavelmente só por-que eu procurava) espaço pra respeitar e valorizar mais pes-soas e saberes diferentes dos meus, e gosto de pensar que cresci com isso

De volta à base, o desafio de lidar com crian-ças entusiasmadas com um ambiente aberto com computadores, jogos e um tipo de liber-dade a qual eles - mesmo os que passam boa parte do dia na rua - não estão acostu-mados. Nem nós. Somos um ponto de cultu-ra, somos abertos ao público, subestimamos o esforço que esse “estar aberto” significava para o nosso cotidiano. Erro, erro...

46 > Comunidade

Page 47: Revista iMasters #14

Somos todos hackers aqui e, em alguma medida, ser hacker significa errar até aquele erro não ser mais um erro. Para isso, claro, é preciso errar coisas diferentes. Se essa defini-ção não ficou clara, talvez valha a pena fazer a definição inversa. Não ser hacker significa delegar a uma outra pessoa – potencialmen-te alguém desconhecido – a tarefa (árdua) de percorrer o caminho por meio do erro até o resultado desejado e, só então, comprar o re-sultado final do processo.

Há justificativas razoáveis para você fazer as coisas dessa forma, e talvez essa seja a medi-da do ser hacker de cada um: o quanto você se dispõe a abrir mão da aquisição de conhe-

cimento e da autonomia possível em cada

atividade, incluindo aí as mais corriqueiras.

Tanto faz se você curte programação, har-

dware, jogos de tabuleiro, literatura, cinema,

gastronomia, moda ou ciências sociais. Tem

um jeito hacker de fazer isso.

Ao contrário do que pode parecer, esse pro-

cesso de produção de conhecimento não é

exatamente fácil. Não é mais fácil que a pro-

dução acadêmica, nem mais difícil. Não pre-

cisa ser. Não é essa a medida que nos faz

escolher esse jeito de fazer as coisas. Que-

remos o conhecimento livre, e sabemos que

“livre” significa uma coisa para cada um. Lidar

com as próprias frustrações faz parte, tanto

(e talvez seja mesmo algo umbilicalmente liga-

do) quanto conseguir se divertir no processo.

Lucílio Correia não se formou em Processamento de Dados na FATEC-SP nem em   Jornalismo na Cásper Líbero. É partidário da transparência e da livre circula-ção de conhecimento e colabora com iniciativas como o Ônibus Hacker, o LabExperimental e o LabHacker. [email protected]

Saiba mais

[email protected] Alfredo Maia, 504 – Luz (próximo ao Metrô Armênia) Telefone: 11 4323 6919

CineHacker na Kantuta

Oficina de cisterna

Comunidade < 47

Page 48: Revista iMasters #14

www.mundipagg.com.br | [email protected] Capitais e Regiões metropolitana: 3003-0460 | Outras regiões 21 3554-2800

SP - Av. Brigadeiro Faria Lima, 1811, 12º andar - Jardim PaulistanoRJ - Rua da Quitanda, 199 - 10º andar - Centro

Pagamentos online de um jeito fácil, seguro e flexível.

Utilize o MundiCheckout para capturar transações online.

Desenvolvendo para você

Page 49: Revista iMasters #14

Muito tem se falado em bancos de dados não relacionais, tambem conhecidos como NoSQL. Eles se tornaram muito populares e grandes players do mercado, como Twitter, Facebook e Google, para citar alguns, nao teriam tantos recursos e escalabilidade em seus servicos se não fossem os bancos não relacionais.

Mas bancos não-relacionais não resolvem todos os problemas e não vão substituir os tradicionais bancos relacionais. Os NoS-QLs nasceram com um objetivo especifico: preencher algumas lacunas deixadas pelo modelo relacional, sendo uma alternativa de persistência e que podem ser mais ade-quados para alguns tipos de projetos, mas não para todos.

Os NoSQLs nasceram com um objetivo específico: preencher algumas lacunas deixadas pelo modelo relacional

Dizer que NoSQL vai substituir um banco de dados tradicional e inválido e incoeren-te, porque estamos falando de arquitetura de dados, de entender como determinada aplicacão le e grava seus dados e, assim, utilizar o modelo mais adequado para que essa leitura e escrita sejam eficientes, sem gerar gargalos.

Alem disso, e muito comum utilizar mais de um banco na mesma aplicacão – nesse pon-to é que surge o termo persistência poli-glota –, aproveitando-se o melhor de cada banco. Antes de entrar nesse assunto, e im-portante lembrar que existem varios tipos de bancos não-relacionais.

Como a persistência poliglota pode ser útil na vida real

O primeiro passo e entender bem cada um dos paradigmas e para que servem. Exis-tem muito mais modelos e tecnologias do que as citadas neste artigo – apenas as principais foram mencionadas aqui –, mas podemos pegar um exemplo da vida real para ilustrar um caso no qual persistência poliglota funcionaria como uma luva: um e-commerce. Pegaremos esse exemplo e simularemos uma arquitetura usando per-sistencia poliglota.

1. Analisando a arquitetura: Um e-com-merce precisa ter catálogo de produtos, carrinho de compras, controle de usuários, sistema de recomendacoes, comentários de usuários e gateway de pagamentos.

Sabemos que a grande maioria das pessoas navega bastante pelo catálogo de produtos e z comparações antes de finalizar a com-pra. Se voce procura um smartphone novo, vai certamente comparar diversos modelos para comprar o seu. Ou seja, a navegacão se concentra muito no catálogo de produtos, que nada mais é que documentos compos-tos de chave/valor com as caracteristicas de cada produto. E elas mudam dependen-do da categoria de produto.

Por exemplo: um smartphone possui al-gumas caracteristicas, como câmera, se possui ou nao 4G, capacidade de armaze-namento, se possui expansão de memoria, entre outras, enquanto um refrigerador possui caracteristicas como 110 volts ou 220 volts, cor prata ou branca, se possui

Persistência poliglota e NoSQL

Por Christiano Anderson, consultor, palestrante e evangelizador de banco de dados não relacionais

Banco de Dados < 49

Page 50: Revista iMasters #14

freezer ou não etc. Fazer isso no relacio-nal e custoso, pois e dificil prever todas as caracteristicas de diferentes produtos. No NoSQL, e bem simples. Se usar um banco como MongoDB, é possivel que a estrutura de documento do smartphone seja comple-tamente diferente do refrigerador – isso no mesmo banco e na mesma colecão (tabela).

Sabemos também que o catalogo de produ-tos e bastante acessado em epocas como Black Friday, Natal e Dia dos Namorados. Se usar MongoDB, pode facilmente ser escalado com sharding, replicas e assim fa-zer uma estrutura bastante elástica para evitar que o site fique fora do ar por aces-sos simultâneos.

Alem do catálogo de produtos, temos sis-tema de recomendaçao, algo do tipo “quem comprou esse produto tambem comprou esses outros”. Fazer essa análise e um pouco complicado, pois e necessário cruzar diversos comportamentos e fatores. Fazer isso em grafos e bastante simples, então adotar um banco como o Neo4J para essa etapa e uma saida de mestre, pois um grafo pode fazer essa selecão facilmente.

O carrinho de compras e uma informacão temporaria, que dura enquanto o usuario está navegando pelo site e morre depois que ele conclui a compra. Nao ha necessida-de de gravar em disco uma informaçao que vai durar tão pouco tempo. Para isso, po-de-se usar a memória RAM, que é barata e rápida. Um banco como o Redis pode muito bem fazer o papel de carrinho de compras.

O pagamento e algo mais delicado, e em-presas antifraude homologam bancos relacionais. Também é interessante que seja transacional, então, nessa etapa, um banco SQL (como PostgreSQL) cairia como uma luva.

Por último, controle de usuários. Tambem e uma informacão com jeito de documento, haverá chaves e valores, senha e demais informacoes pessoais do usuário, como seu histórico de compra (que pode ser um docu-mento embarcado). Mais uma vez, o Mon-goDB pode fazer muito bem esse papel.

2. Criando um barramento: Nessa supos-ta aplicaçao de e-commerce, temos quatro diferentes tecnologias em uso: MongoDB, Redis, Neo4J e PostgreSQL. Como manter a consistência dos dados? A melhor resposta para isso e construir um barramento, uma camada de aplicaçao que apenas conver-se com os diferentes bancos. Essa camada libera algumas APIs (REST ou de alguma outra forma que achar melhor) para que seja o elo com a camada frontend. A grande vantagem de trabalhar com um barramen-to é que toda inteligência fica em um único lugar, e o frontend apenas consome essas APIs. Isso facilita muito o desenvolvimento de solucoes mobile e a inclusão de novas funcionalidades, pois será necessário ape-nas adicionar novos metodos ao barramen-to e depois programar no frontend, evitan-do paradas e migracoes de sistema.

3. Escalabilidade: Conhecendo bem as caracteristicas do projeto, e possivel es-calonar no lugar certo. Nem todo mundo que navega em um e-commerce finaliza a compra, então escalonar o catálogo de produtos e muito mais fácil - será neces-sário apenas aumentar estrutura de Mon-goDB quando houver um número elevado de acessos. Não e preciso mexer em todo o sistema para escalar, basta plugar novas instâncias MongoDB, que continuara trans-parente para o barramento. Facilita muito o trabalho!

ConclusãoPersistencia poliglota pode ser um grande aliado, se for trabalhada de forma adequa-

50 > Banco de Dados

Page 51: Revista iMasters #14

da. Pode parecer que envolve custos e exige competências distintas, mas se o objetivo é manter um serviço no ar em situações que envolvem muitos acessos, é uma alternativa a ser pensada. Grandes players utilizam mais de um banco em suas aplicações, e a experiên-cia mostra que isso é bastante viavel.

Tipo Descrição Tecnologias

Orientação a documento Cada “registro” no banco é chamado de documento, pode ser feito de vários formatos, sendo o mais comum salvar uma espécie de JSON nas “tabelas”, que são chamadas de coleções.

O mais popular é o MongoDB, mas existem outros como CouchDB e Redis.

Orientação a grafos Trabalha com estrutura de grafos e consultas semânticas com vér-tices e arestas.

O mais popular é o Neo4J, mas existem outros que tam-bém suportam grafos, como ArangoDB e OrientDB.

Orientação a colunas Possui uma ou múltiplas chaves e valores intercalados, simulando uma coluna.

Hbase e Cassandra são os mais populares.

Multi-model São bancos que atendem a dois ou mais paradigmas, como doc-umentos e grafos.

ArangoDB e OrientDB são os mais populares, ambos suportam tanto orientação a documento como grafos.

Tipos de bancos não relacionais

Christiano Anderson trabalha como arquiteto de dados, especialista em bancos não rela-cionais (NoSQL), big data e tecnologias emergentes. É sócio-fundador da Propus Sci-ence, empresa especialista em NoSQL e Big Data, também parceira da MongoDB e Horton-works no Brasil. Também é professor e palestrante nos principais eventos no Brasil e exterior. http://christiano.me | [email protected] | @dump

Banco de Dados < 51

Page 52: Revista iMasters #14
Page 53: Revista iMasters #14

Startups enxutas, porém sustentáveis

Por isso, muitas vezes os novos empreen-dedores iniciam a execução de seus proje-tos sem se preocuparem com uma estru-tura jurídica e contábil mínima e necessária a fim de evitar maiores problemas no futu-ro. Isso ocorre na medida em que startups adotam custos extremamente enxutos, minimizando despesas, pois ainda não há certeza da viabilidade do negócio.

Ocorre que, algumas vezes, a redução de custos, por si só, pode redundar em pre-juízos futuros. Isso porque alguns empre-sários acabam optando pela contratação de profissionais contábeis sem qualquer conhecimento específico do mundo das empresas startups, bem como relegam os advogados para os chamados momentos de crise.

Desde o estouro da bolha da tecnologia no final dos anos 1990, o mundo mudou e a famosa ideia da empresa de garagem formada por um grupo de jovens gênios que almejam en- c o n -trar um investidor que colocará uma pequena fortuna na sociedade para o pro-jeto deslanchar já desapareceu. Atualmente, os investidores espe-ram encontrar um projeto mini-mamente organizado e sus-tentável, pois, como explica Eric Ries, a “atividade

fundamental de uma startup é transformar ideias em produtos, medir como os clientes reagem e, então, aprender se é o caso de pivotar ou perseverar. Todos os processos de startup bem sucedidos devem ser volta-dos a acelerar esse ciclo de feedback”.

De mais a mais, vale lembrar que esses investidores, sejam eles agências de fo-mento, fundos de investimentos ou inves-tidores-anjos, vêm acompanhados, além de toda a sua experiência, de advogados especializados ou de grandes bancas, con-tadores, auditores etc.

Embora a administração do negócio não seja a parte, digamos, mais envolvente de um projeto startup, é essencial, e compete ao empresário, pensar um pouquinho nes-sas questões, tanto quanto na estrutura tecnológica necessária para fazer o produ-to rodar.

Assim, vamos volta atrás no tem-po, embora, desde já, esclareça-se

que não pretendemos inovar ou esgotar nenhuma ma-téria, mas apenas aju-dar o empreendedor

em seus primeiros passos.

O novo empresário provavelmente terá sócios e parceiros no projeto. E o início do projeto é o momento

Por Por Ricardo Azevedo, advogado, socio do COTS Advogados

É muito famoso o conceito de startup formulado por Eric Ries, em seu livro Lean Startup, no sentido de que “é uma instituição humana desenhada para criar um novo produto ou serviço em condições de extrema incerteza”.

Cyberlaw < 53

Page 54: Revista iMasters #14

adequado para se estabelecer as regras de relacionamento entre sócios e colaborado-res, assim como estabelecer as decisões societárias e as responsabilidades de cada um dos participantes do empreendimento, entradas de novos sócios, forma de paga-mento de dividendos e até mesmo prever as regras para o caso de saída de algum sócio.

Embora a administração do ne-gócio não seja a parte, digamos, mais envolvente de um projeto startup, é essencial, e compete ao empresário, pensar um pou-quinho nessas questões

A definição da estrutura societária logo no início das operações da startup também será muito importante para o futuro da nova companhia, pois influenciará a forma de distribuição de lucros, bem como o aporte de capitais pelos investidores. A legislação brasileira possui diversos modelos, como sociedade anônima por ações, sociedade limitada, EIRELI (empresa individual de res-ponsabilidade limitada) etc., sem falar em figuras previstas na legislação societária, como Sociedades em Conta de Participa-ção (SCP) e Sociedades de Propósito Espe-cífico (SPE), que podem ser bastante úteis em determinados modelos de negócios.

Mais recentemente, as startups passaram a adotar um novo modelo de contratação chamado vesting, a fim de atrair consulto-res, executivos e grandes talentos do mer-cado, com garantia de progressiva aquisi-ção de participação no capital social das novas empresas. Contudo, os contratos de vesting precisam ser elaborados com extre-mo cuidado, regras claras, e percentuais e prazos de opção muito bem definidos, para não frustrar as partes contratantes, bem como não afugentar os futuros investidores.

A partir daí, a startup deverá tomar deci-sões tributárias bastante relevantes que poderão impactar na lucratividade dos só-cios, bem como nas relações com os in-vestidores, como no caso de escolha dos sistemas de apuração do lucro real ou lucro presumido, e mesmo a opção pelo Simples Nacional (ou até a figura do Microempreen-dedor Individual – MEI).

Essas escolhas são importantes e deverão ser adotadas de acordo com as peculiari-dades dos negócios, custos e despesas da empresa. Por exemplo, se a empresa pu-der usufruir de benefícios fiscais oferecidos pelo Governo Federal, terá que, obrigato-riamente, adotar a apuração dos tributos federais pela sistemática do lucro real. De outra forma, caso a empresa tenha que efetuar o pagamento de royalties relativos a softwares ou patentes para o exterior, a op-ção pelo lucro real também poderá ser inte-ressante. Por outro lado, se a empresa não puder aproveitar créditos para o sistema não-cumulativo do PIS/COFINS, a fim de reduzir o montante daquelas contribuições, talvez seja o caso de adotar a sistemática do lucro presumido. E por aí vai.

Recentemente, o Governo Federal encami-nhou um projeto de lei que estabelece a op-ção para as empresas adotarem ou não o regime de deso-neração fiscal da contribui-ção previdenciária patronal de 20% em subst i tu i -

54 > Cyberlaw

Page 55: Revista iMasters #14

ção de uma alíquota de 2% (que será majo-rada para 4,5% pelo mesmo projeto de lei).

Nesse caso, quando a referida legislação for aprovada pelo Congresso Nacional, as empresas que atuam no setor de pres-tação de serviços de tecnologia da infor-mação (desenvolvimento de programas de computador, elaboração, licenciamento ou cessão de uso de softwares, processamen-to de dados, instalação e manutenção de programas e sistemas etc.) precisarão fazer anualmente uma análise em relação ao fa-turamento versus folha de pagamento para determinar se vale a pena se manter no pro-grama de desoneração fiscal.

E já que estamos na seara da relação de emprego, nunca é demais lembrar como o sistema de proteção dos direitos traba-lhistas brasileiro é extremamente complexo e exige das empresas verdadeiros mala-barismos de custos a fim de atender às disposições da CLT, do FGTS, e às exigên-cias dos sindicatos, como a introdução de programas de participação nos lucros e re-sultados das empresas (PLR) em benefício aos funcionários.

Você não vai querer apresentar um grande negócio para um possível investidor que já nasce com um passivo fiscal e trabalhista.

Tudo isso sem considerar que o modelo de negócio precisa estar adequado e obedecer às melhores práticas de regulamentação, governança corporativa, princípios contá-beis, de controladoria, ou normativos do setor em que atua. É o chamado complian-ce, que exige muitos cuidados e atenção do novo empresário para fazer cumprir as nor-mas legais e regulamentares, as políticas e as diretrizes estabelecidas para o negócio e para as atividades da empresa, bem como evitar, detectar e tratar qualquer desvio ou inconformidade que possa ocorrer.

A adequação das empresas aos regula-mentos de compliance, em especial daque-les adotados pelos investidores, é cada vez mais exigida em um mundo em que a trans-parência passou a ser pré-requisito para aceitação da empresa no mercado.

Exemplo disso constitui a discussão públi-ca patrocinada pelo Ministério da Justiça acerca do Anteprojeto de Lei de Proteção de Dados Pessoais.

O desenvolvimento de tecnologias que enviam ou capturam dados sem qualquer controle do usuário, bem como serviços adicionados, passará a requerer, após a votação dessa legislação, como contrapar-tida à facilitação diária, a adoção de cui-dados jurídicos para que as empresas não se vejam em grandes enrascadas com os seus consumidores.

Assim, mais do que nunca, os chamados “termos de aceite”, “acordos de confiden-cialidade” e “políticas de privacidade” serão de suma importância para os negócios que envolverem tecnologia da informação e In-ternet das Coisas, demandando regras de compliance extremamente rígidas quanto ao uso e tratamento dos dados pessoais para proteção dos usuários.

Portanto, é certo que os empreendedores no modelo de startups, dado o ambiente de incerteza em que existem, devem se preo-cupar com a redução continua de custos, mas não devem abrir mão de se cercar de bons consultores e de profissionais que en-tendem as regras dos mercados onde irão atuar. A sustentabilidade de um negócio, por mais brilhante e inovador que seja o projeto de negócio, vai depender da com-preensão do empresário quanto às diversas regras jurídicas e regulamentadoras que re-gem o mercado.

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 Tribu-tários). Foi Gerente Jurídico de empresas de Tecnologia por aproximadamente 10 anos. [email protected]

Cyberlaw < 55

Page 56: Revista iMasters #14

www.locaweb.com.br/hospedagem

Locaweb.com.br

EATSLEEPCODE

REPEAT

Locaweb Hosting: hospedagem 24 horas para pessoas 24 horas.

Conheça os novos planos a partir de

*Val

or

equi

vale

nte

po

r m

ês p

ara

a p

rim

eira

anu

idad

e.

12R$ ,90*

LSIINST-0111_Hospedagem_simples_red 205x275mm REV.indd 1 13/4/15 11:25

Page 57: Revista iMasters #14

Alguns fatos:

- Fato 1: Eu invisto (alguns dizem que eu perco) tempo compreendendo alguma coisa pela qual surja interesse (fato 1).

- Fato 2: Ha algum tempo venho refletin-do sobre testes e tambem – aliás, especial-mente –, sobre Test Driven Development (TDD).

- Fato 3: O último fato, e de menor impor-tância é que este artigo é longo. Logo, se voce reclama de textos longos, não acho que valha a pena dedicar seu tempo a ele

Vamos ao que interessa

Conversando com o Diogo Baeder, o Ney Basilio e o Rafael Valeira, acabei juntando uma peça aqui e outra acola, e encontrando uma maneira realistica, não ligada direta-mente a software, mas sim à vida, na qual apoiar uma escolha por TDD.

Eu perguntava sobre as dificuldades que tenho em utilizar testes, tais como racio-nalizar o porquê dos mocks, que criamos e mantemos em paralelo à implementaçao original para poder isolar completamente uma teste de suas dependencias, ou tam-bém a diferença entre usar fixtures em um teste e “mockar”, quando uma das resposta me levou a lembrar, nao sei porquê, da se-guinte frase: “A gente devia ter duas vidas, uma pra treinar e outra pra viver”.

E foi dai que cheguei à sintese de como re-solvi encarar testes, e é isso que pretendo

apresentar aqui: “um software deve ser de-senvolvido para sobreviver em um ambien-te previamente definido”.

Se definirmos o dominio de um problema como um mundo e o software como um ser que deve viver naquele mundo, ele, o soft-ware, pode ser colocado pra treinar em um mundo simulado (testes) e ir melhorando, antes de passar a realmente viver (live).

O mundo real está lá, com efeitos imprevisi-veis. Os usuários (com seu julgamento) es-tão lá. A latencia está lá. A falha em um ser-vico está lá. Num espaco onde os efeitos são reais. E se pudermos, antes de estar lá, praticar como fazemos em um treinando ou como o faz um jovem aprendiz ou um estu-dante, tanto melhor.

Mas para isso precisamos pressupor que um software tem certas características:

1. Um software, assim como uma crianca, pode, apesar de seus pais o achar perfeito, sofrer com o ambiente em que vive e cresce influenciado pelas companhias. Crescer na companhia de bons softwares/hardwares e muito saudável e o contrário pode fazer com que se pareça errar por sua propria natureza, mas na realidade e so um “bubbles” de coisas que aconte-cem no ambiente.

Podemos definir uma lei baseada no

Como eu precisei ver TestesPor Ivo Nascimento, Project Manager na startUp Smart Entrega

Desenvolvimento< 57

Page 58: Revista iMasters #14

clichê que é “dize-me com quem andas e te direi quem és“.

2. Um software aprende sempre, mesmo que nao tenha sido escrito para isso. Uma regra escrita hoje se prova obsoleta ama-nha, porque agora existe um dado que permite mais acurácia. O programador vai alterar aquela regra e, por reflexo, pode-mos ver, num sistema de versionamento de arquivos, toda a evoluçao em termos psico-lógicos, algoritmicos e fisicos, a quantidade de codigo (linhas apagadas, acrescidas e alteradas) e todo o ganho de novas capa-cidades e aperfeicoamento das habilidades já existentes.

“um software deve ser de-senvolvido para sobreviv-er em um ambiente previ-amente definido” Podemos definir essa como uma segunda lei, e utilizar aqui a frase “interaçao e tem-po geram conhecimento”.

Precisamos pressupor essas duas caracte-risticas para entender que o melhor lugar para um software aprender a lidar com “as coisas da vida” e o mesmo melhor lugar de quem esta em processo de aprendizado.

Este lugar e um ambiente controlado, sem as penalidades reais, onde as situações que precisam ser aprendidas podem ser repro-duzidas e seus resultados analisados, para que se saiba o que deve ser aperfeiçoado.

Este lugar tem nome: ele é chamado de “ambiente de testes”. O equivalente para um software do que é a escola, para os humanos.

Construir um lugar assim e utilizá-lo tem um custo, assim como construir um mun-

do qualquer (consultar os ratos sobre isso - http://ow.ly/LgsPV), mas é um custo infinita-mente menor que o de “errar na realidade. Aliás, se pegarmos o espirito dos seriados de sucesso atual, essa diferenca pode ser explicada como a diferenca de emocão em passar um capitulo inteiro de Walking Dead atirando em alvos imoveis de feno, ou atirar diretamente em zumbis.

Criar um “mundo ambiente de testes” para que os “seres vivos softwares” possam pra-ticar ser testados e a melhor maneira de garantir que tenham uma vida, um deploy no live, segura e tranquila, sem que seu criador seja apedrejado por heresia.

A conclusao disso foi que, ao escrever tes-tes, o ato de escreve-los antes e primordial para o relacionamento programador/teste ser positivo (e não simplesmente boring) e que, ao escrever um teste, você esta pou-pando uma vida (uma peca de software dei-xa de morrer).

Existe uma diferenca tenue entre escre-ver um teste para uma peca de software e escrever uma peca de software atraves de um teste.

Se softwarelogia existisse, e se tivesse uma missão como a da antropologia, mas voltada a software, teriamos:

- No primeiro caso, voce está lidando com um ser pronto, cuja única parte visivel e a externa (interface) e cujo conteúdo, se você quiser conhecer, tera de dissecar (uma tarefa complexa, e o ser pode morrer no processo).

- No segundo, não existe ser, mas voce esta dizendo que, para que ele exista, deve atender a certas regras (como um peixe, que obedece a regra de viver grande par-te do tempo em meio aquatico) e você nao

58 > Desenvolvimento

Page 59: Revista iMasters #14

precisara disseca-lo para saber que ele cumpre tal regra, afinal, de inexistente, voce, o criador, o fará existente e, fato, ele só conseguira existir se atender aos requi-sitos do mundo que você projetou para vali-da-lo (fatalista, nao?!).

Outra coisa muito importante é: ninguém consegue escrever um teste para uma peca de software sem cair na armadilha de concluir que nao vai conseguir escrever um teste para um problema que nao tenha pensando e tratado no código, porque se não conseguiu imaginar o problema na im-plementacão, tambem não vai imaginá-lo no teste.

Para quem curte quadrinhos, e leu “A morte do Super Man”, a diferença do que foi defi-nido acima e algo como se o Bertron tivesse criado o Apocalipse em laboratorio, de acor-do com o que imagina ser o certo, e colo-casse ele pra matar o Super Homem (pro-vavelmente o Apocalipse morreria) e criar o mesmo Apocalipse fazendo ele sobreviver no mesmo ambiente que o Super Homem. Praticamente, neste segundo caso, alem do beneficio de evolucão incremental e posi-tiva, ele ainda ganhou um parâmetro com o profiling todo publicado contra o qual comparar a sua criacão (a saber, o proprio Super Homem).

O ambiente de testes fica entao caracteri-zado como a peca mais importante dentro do processo de desenvolvimento de soft-ware, assim como e a escola dentro da for-macão de um ser humano.É nele que um software vai ser confrontado

com situacoes reais, com penalidades con-troladas, como um aluno que faz uma prova de aritmetica e erra o troco de uma compra de 10 Reais quando deu uma nota de 100. Ele pode dizer na escola que o troco é de nove reais e, mesmo assim, não perder di-nheiro, mas na vida real, ele teria um prejui-zo de… responda ai!

Assim como na escola, o mundo de teste apresenta um novo desafio, à medida que julga que o software esta preparado para ele. Você nao cria todos os testes que ca-racterizam o “mundo de provas” de uma vez. Faz isso de maneira incremental, à me-dida em que vai assistindo à peça de soft-ware ir vencendo os desafios anteriores.

Este processo incremental permite que se saiba qual foi o erro, onde ele esta e o que deve ser melhorado. Assim como uma pro-va baseada em um bimestre de aulas, e não em um ano inteiro: corrigir os erros de um bimestre e um processo bem menos dolo-roso do que corrigir os de um ano inteiro. Da mesma forma, corrigir um algoritmo de 7 linhas é mais compreensivel do que corrigir um software de 100 linhas.

Foi assim que tive que pensar em testes para me sentir à vontade enquanto os uso.

Recapitulando

1. Dize-me com quem andas e te direi quem és: um software deve ser testado

Podemos definir uma lei baseada no clichê que é “dize-me com quem andas e te direi quem és“

Desenvolvimento< 59

Page 60: Revista iMasters #14

isoladamente para que seu comporta-mento nao seja influenciado pelos erros dos outros.

O ambiente de testes fica então caracterizado como a peça mais importante dentro do processo de desenvolvimento de soft-ware, assim como é a es-cola dentro da formação de um ser humano

2. Interaçao e tempo geram conhecimento: o processo de testes deve ser incremental e seguir uma linha de tempo pre-estabele-cida. Isso adiciona conhecimento e permite sua recuperacão, não importa se seu soft-ware utiliza algoritmos mutáveis ou não. O conhecimento se acumula no servidor de controle de versao de código que você esta utilizando.

3. Ambiente de testes devem ser levados tao a sério para o software quanto é a es-cola para a educaçao de seres humanos: o

processo de testes de um software permite uma co-relacão com o processo de aprendi-zado de uma crianca.

4. Crie o ambiente de teste antes do soft-ware a ser testado: ninguém que projeta um software deixa de analisar questões que estejam ao seu alcance (falo de pes-soas justas). Isso torna impossivel em um momento não ver um defeito, e no outro, vê-lo. Na realidade, quando você passa a ver um erro depois do software criado e porque esta sendo penalizado por ele com o custo mais caro possivel, em producão. Assim como uma criança que deixa a escola, e não e mais crianca, e penalizada pela vida quando percebe que nao aprendeu algo quando devia tê-lo feito.

Ivo Nascimento é Project Manager na startUp

Smart Entrega onde alia sua experiencia como

Analista de Sistemas, Arquiteto de software e

com gerenciamento para desenvolver práticas

que aproximam a área de negócio e desenvolvi-

mento de software em busca de eficiência.

[email protected] | github.com/iannsp |

ivonascimento.wordpress.com |

@ivonascimento

60 > Desenvolvimento

Page 61: Revista iMasters #14

Tenha uma solução completa com uma integração super simples.

Page 62: Revista iMasters #14

Diferenças entre Comunicação e Marketing no meio digital

Por Bruno Rodrigues, Consultor de Informacão e Comunicacão Digital

Assim como acontece em qualquer mercado de trabalho, as ações de Comunicação e Ma-rketing no mercado digital surgiram sem que ninguém dissesse ‘já!’. Profissões e ativida-des nascem da demanda do mercado e aos poucos vão se formalizando, não há um pon-to de partida exato. A diferença, com a web, é que tudo aconteceu na velocidade da luz.

Quando a teoria é atropelada pela prática, como ocorre desde meados dos anos 90 com o mercado digital, os profissionais – eu e você – muitas vezes precisam tatear no es-curo em busca de teorias e comprovações que ajudem a basear o trabalho. Já foi tempo em que apenas a experiência era aceita pelos clientes como argumento.

A boa notícia é que, de uma década para cá, a área foi inundada por boa bibliografia, sejam livros, blogs, grupos etc. Afinal, quem acumu-lou estrada compreendeu que a única forma de o mercado avançar é dividir com os outros os conhecimentos.

Em meio à evolução de autodidatismo para profissionalização de mercado, conceitos básicos de Comunicação Social ficaram na poeira, contudo. Quando perdemos o fio da meada de onde viemos, a consequência ime-diata é a criação de ruídos nas ações que pla-nejamos e executamos, sejam elas as mais avançadas ou intrincadas. Sem base, damos cem passos para a frente, mas com o risco de recuarmos mil passos.

Para começar, que tal bebermos da fonte, en-

tão? Você saberia definir, à luz do meio digital, o que é Comunicação e o que é Marketing, por exemplo, ou apontar suas diferenças? Para o profissional de mercado, saber res-ponder a estas questões é fundamental.

O que é Comunicação

Imagine um jogo de tênis. Em lados opostos da quadra, estão dois jogadores – e a bola, o motivo de tudo. Na Comunicação, assim como no tênis, a função do jogador 1 é fazer com que a bola chegue até o jogador 2, e ponto final. Temos, então, o emissor e o re-ceptor – e a mensagem. Até duas décadas atrás, o que importava para a Comunicação era fazer com que a bola chegasse ao ou-tro lado da quadra. Se ela seria rebatida (e como), era secundário. Desde então, com o meio digital, tudo mudou.

O que parecia ser um jogo com dois partici-pantes – e vamos ser sinceros, não era – vi-rou uma partida de verdade em que mais que importante do que a mensagem chegar ao receptor era estar preparado para o próximo movimento. A mesma bola que vai, volta dife-rente, e a mensagem se transforma ao longo do jogo. Neste processo, todos ganham.

No tênis da Comunicação Digital, não há um vencedor – até porque, para quem iniciou a partida, o interesse é fazer com que o jogo nunca termine. O que era uma simples intera-ção transformou-se em interatividade. O que seria um pesadelo para a Comunicação de

62 > Sr. Conteúdo

Page 63: Revista iMasters #14

décadas atrás virou ‘sonhar acordado’ para as (boas) marcas de hoje.

O que é Marketing Você não sabia, mas meu objetivo, ao fazer o convite para jogar tênis, era convencê-lo a tornar-se sócio do clube – do qual eu sou o dono. Uma função e tanto para uma bola de tênis, não é? Mas é esta a razão de ser do Marketing: usar a mensagem para algo mais ambicioso. O objetivo pode ser apenas vender uma caixa de bola de tênis, mas tam-bém pode ser convencê-lo a comprar o clube inteiro. Por isso, no Marketing, a sedução é o centro de tudo. Ela tem a missão - quase mágica - de incutir na mensagem o desejo de compra.

No Marketing, o que uma marca tem a fazer vai muito além do informar; a informação exis-te como ponte para um objetivo maior: aten-der ou criar necessidades.

O que parecia ser um jogo com dois participantes – e vamos ser sin-ceros, não era – virou uma partida de verdade em que mais que impor-tante do que a mensagem chegar ao receptor era estar preparado para o próximo movimento

No meio digital, a dinâmica fica bem mais complexa. A mensagem sofre metamorfose

nas mãos de quem queremos atingir: o re-ceptor. Ele a toma para si e, tal e qual massa de modelar, cria uma nova mensagem que é passada adiante. A marca deixa, então, de ser algo ‘uno’ para tonar-se coletivo. O público analisa, questiona e até muda a própria mensagem.

Às marcas recai, então, a obrigação de estar lado a lado com o receptor da mensagem, lapidando-a a medida que ela se multiplica na rede, evitando que os ruídos a desfaçam e trabalhando para que o ‘norte’ da conver-são à compra continue no campo de visão do público.

Comunicação x Marketing

Em um ambiente como o digital, em que o Marketing é vital para a sobrevivência das marcas, ainda é possível apostar na mensa-gem pura e simples, apenas como veículo de Comunicação? Para os desavisados, não.Uma vez compreendidos os conceitos de Co-municação e Marketing no contexto do meio digital, é possível, então, fazer uma crítica ao caminho inverso: de forma alguma é possí-vel trabalhar informação na área sem que se entendam as peculiaridades da mídia. Ser conceitual, apenas, não basta. É preciso tra-balhar teoria e prática.

Quem compreende os meandros do meio online sabe o valor da informação pura e sim-ples, e coloca em ação sua dupla função. A

Sr. Conteúdo < 63

Page 64: Revista iMasters #14

Bruno Rodrigues é Consultor de Informação

e Comunicação Digital, autor dos livros ‘Web-

writing’ (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 on-

line’. Também é instrutor de Webwriting e Ar-

quitetura da Informação no Brasil e no exterior.

bruno-rodrigues.blog.br | @brunorodrigues

primeira está na raiz do hipertexto: a capaci-dade quase infinita de servir como fonte de conhecimento para o receptor, aprofundando as informações e tirando dúvidas ao longo do caminho.

A segunda está no fato de que a web é for-madora, capaz de ‘preparar’ os usuários para o consumo. Quanto mais informado, mais c apacitado para a compra. Com o saber, cria--se a ponte para o consumo. Ao analisar um processo de compra, chega-se muitas vezes à conclusão de que uma informação sem propósito de estímulo ao consumo foi o principal motivador.

Dominar ferramentas

Dominar ferramentas, aprender na prática e acumular conhecimentos sempre foi, desde o ponto zero do mercado digital, o caminho para alcançar o sucesso. Saber o quanto destes três itens utilizamos no nosso dia a dia é o que garante que não sairemos dos trilhos, hoje e sempre.

No Marketing, o que uma mar-ca tem a fazer vai muito além do informar; a informação ex-iste como ponte para um ob-jetivo maior: atender ou criar necessidades

Você não precisa ser pós-graduado para me-xer no Google Analytics. Lidar com ferramen-tas não é diferencial no mercado – é um item obrigatório, mas jamais um diferencial. Seu primo de 16 anos é capaz de dar um banho em você no uso do Analytics, pois é bem pro-vável que ele tenha mais tempo para enten-der dos meandros do ferramental. Ou seja, você não é mais que ninguém porque sabe

lidar com aplicativos, mas porque sabe trans-formar dados coletados em informações, e informações em conhecimentos úteis ao tra-balho. Isso, sim, é um diferencial e tanto.

Aprender na prática

Seguir o ‘feeling’ é trabalhar à beira do pre-cipício. O apoio nesta hora precisa ser a au-tocrítica, que sempre nos puxa de volta para o reino da subjetividade, deixando para trás as armadilhas do subjetivo (‘estou certo por-que tenho estrada, e ponto final’). No terre-no do objetivo, as perguntas precisam de respostas palpáveis; saber responder para você, sua equipe, seu chefe e seu cliente os porquês das ações tomadas é o caminho certo para trabalhos de sucesso – e uma carreira promissora.

Acumular conhecimentos No mercado digital, quanto mais restritivo um MBA ou curso de pós-graduação, menor a chance dos conhecimentos adquiridos vale-rem, de fato, para alavancar a carreira. Este cenário não é apenas característico da Co-municação Digital: qualquer mercado oferece estas ‘pegadinhas’. A não ser que você tenha optado por dedicar sua vida profissional à ‘re-bimboca da parafuseta’, jamais faça um ‘MBA Executivo em Rebimboca da Parafuseta’. O efeito colateral é você chegar à conclusão de que precisa fazer outro curso, mais abrangen-te. Fique atento aos modismos, portanto. ;-)

64 > Sr. Conteúdo

Page 65: Revista iMasters #14

AF_Anu_Loja_170x245_2_Abr.indd 1 14/04/15 18:17

Page 66: Revista iMasters #14

Salve, desenvolvedores!

A ideia dessa coluna sempre foi de passar ex-

periências para que vocês consiga desenvolver

melhor, mais tranquilos e focados em seus obje-

tivos. Zen é uma palavra originada nos estudos

do Budismo e dá nome a uma de suas principais

vertentes. O Zen pode ser atribuído à prática dos

ensinamentos e meditação com o fim de alcançar

o estado de espirito de realização. Não sou bu-

dista, embora a cultura envolvida sempre tenha

me admirado.

Ora, nosso objetivo como desenvolvedores é de

evoluir nossos produtos e a nós mesmos, de ma-

neira a trabalhar um circulo virtuoso de melhoria

contínua – não guerreando com essa evolução,

mas fazendo-a da maneira mais sensata possível.

O Zen pode ser atribuído à prática dos ensinamen-tos e meditação com o fim de alcançar o estado de espirito de realização

Como parte dessa experiência de evolução, va-

mos citar um exemplo bem simples, ligado in-

clusive ao budismo: imagine algo relacionado à

palavra “meditação”. Provavelmente você, assim

como a maioria dasw pessoas as quais pedi isso,

imaginaram um monge meditando, provavelmen-

te por ser uma cena recorrente em diversos fil-

mes. Agora expanda isso: um monge dificilmente

vive sozinho. Um monastério normalmente abriga

mais monges, aprendizes, colaboradores, entre

outros… Nunca estão de fato sozinhos. Eles

compartilham seus pensamentos, ensinamentos,

descobertas pessoais uns com os outros.

Na nossa realidade, costumeiramente distante de

monastérios, é comum termos pessoas ao nosso

lado. Mas colaboramos normalmente entre nós?

Nem sempre. Aqui quero introduzir, caso você

ainda não conheça, o conceito de comunidade.

Uma comunidade é constituída de pessoas que

agem em prol de um objetivo comum. O monas-

tério é um exemplo claro de comunidade, assim

como deveria ser o time com o qual você tra-

balha.

Se você desenvolve software hoje, com certeza

já ouviu falar de comunidades de software. Es-

sas comunidades trabalham, muitas vezes sem

dinheiro, em prol de espalhar conhecimento so-

bre determinada área de conhecimento – seja de

uma linguagem, plataforma, tecnologia…

Temos como exemplos aqui no Brasil diversas

delas – notadamente Appsterdam, SouJava, GU-

RUs e PHP-(alguma coisa) país afora, e tantos

outros que seria impossível listar aqui. Todos,

além de construir uma estrutura de aprendizado

em seu próprio foco interagem entre si por ter

objetivos em comum. Mesmo empresas investem

nessas comunidades, como é o caso dos GDGs

(Google) e da MSDN (Microsoft).

Além do óbvio compartilhamento de conheci-

mento por meio de palestras e eventos, o que

mais uma comunidade pode trazer de bom para

o seu dia a dia codificando? Ora, praticamente

todas as ferramentas que o auxiliam no desen-

volvimento hoje, como frameworks, suítes de

testes, documentação, servidores… de novo:

uma comunidade trabalha em prol de um mesmo

objetivo. Pessoas trabalham, muitas vezes sem

Trabalhe (Z|B) em acompanhadoPor Anderson Casimiro, CTO da Agrosmart e ativista do PHPSP

66 > Desenvolvimento Zen

Page 67: Revista iMasters #14

ganhar um tostão para isso, para fazer

a biblioteca de url routing que você está usando

nesse momento. E como fazer isso sem dinheiro,

sem um gerente? Compartilhando conhecimen-

to, obtendo feedback continuamente e, principal-

mente, aprendendo um com o outro.

“Ok, mas o que isso tem a ver com o time aqui

da empresa?”, você pode estar se perguntando.

Imagine seu time, trabalhando com o mesmo

ânimo que um projeto opensource, como uma

comunidade. Pessoas interagindo ao invés de

competir (sim, eu sei que isso acontece no seu

time de um jeito ou de outro). É uma mudança de

mentalidade. Imagine seu time discutindo o

produto no qual vocês estão trabalhando como

se estivessem a definir os próximos passos do

Spring/Symfony/Rails/Django… se o empenho

em trocar conhecimento entre o time for incenti-

vado, se as pessoas fossem reconhecidas publi-

camente pelos seus feitos e fossem humildes com

relação às suas falhas. Aceitar feedback como

forma de aprendizado. Este não é um ambiente

mais amigável? É o clima em comunidades de

software.

Se você leu isso e achou algo revolucionário, no

mau sentido da palavra, (então provavelmente

você é um gestor à moda antiga), aqui vai uma

outra “revolução”: trabalhar com TI é evoluir cons-

tantemente. Diferente de outras áreas do conhe-

cimento, a cultura que gira em torno desta matéria

está sendo reinventada todos os dias. Scrum,

Integração Contínua, Gestão do Conhecimento

são tópicos nos quais você deve pensar não só

pelo valor que eles agregam ao seu produto, mas

também às pessoas executando-o.

E, como uma comunidade aberta, saber apren-

der mesmo em situações negativas - como em

feedbacks/retrospectivas com críticas a empresa

ou a gestão. Sim, gestores, diretores, e vários

“C-alguma coisa-O”s devem deixar de pensar no

cargo e sim no papel executado no contexto da

empresa - assim como cada um tem seu papel

nas comunidades. Essa mudança de pa-

radigma, de descer do degrau e conver-

sar como pessoas em diferentes papeis

aproxima o Executivo do Tático e ambos

do Operacional.

Mais uma nota aqui: em empresas ou comuni-

dades, sempre devem ser pessoas a lidar umas

com as outras - apesar de que alguns ainda

acreditem que seu cargo deva fazer esse meio

de campo.

Em resumo, trazer o ambiente de comunidade

para dentro da empresa só tem benefícios, se

devida e sensatamente executado. Seja o de-

senvolvedor que interage com os outros do time,

aprenda e ensine sempre. Seja o gestor que ouve

e faz o que é necessário para que o time, que

inclui você, estejam alinhados com relação ao

objetivo. Seja o executivo a deixar sempre clara a

visão do projeto para todos.

Sejam a comunidade a levar seu desenvolvimen-

to a um novo patamar. Sejam fãs de sua própria

comunidade e façam o possível para que ela te-

nha cada vez mais fãs. Façam isso juntos, como

comunidade, fazendo o necessário para tornar

seu dia a dia num “estado de espírito” comparti-

lhado, prazeroso e produtivo, para todos.

Desenvolvam Zen, até a próxima!

PS: Perdoem-me budistas se cometi al-gum equivoco aqui; sou todo ouvidos para aprender corretamente e de maneira mais ampla. Precisei ser breve nesta descrição.

Anderson Casimiro é CTO da Agrosmart e ativista

do PHPSP. Apaixonado por Tecnologia desde sem-

pre, tendo atuado como desenvolvedor, instrutor,

evangelista e líder de times de desenvolvimento,

além de palestrante nos principais eventos de tec-

nologia do país.

@duodraco | [email protected]

Desenvolvimento Zen < 67

Page 68: Revista iMasters #14

Job: 21277-006 -- Empresa: africa -- Arquivo: AFD-21277-006-UOL-HOST-RV DIGITALKS-170X245_pag001.pdfRegistro: 163949 -- Data: 14:41:12 17/03/2015

Page 69: Revista iMasters #14

Seguranca e processo, e os processos preci-sam ser bem executados e garantidos para que você se sinta seguro com sua aplicaçao, ou pelo menos mais tranquilo. Os casos e as noti-cias veiculadas sobre falhas de seguranca no CMS mais popular do mundo são, em sua maio-ria, decorrencias de acoes e de alguns cuidados que nao foram tomados.

Quando alguma brecha e encontrada, ela e rapidamente corrigida e uma nova versão do software e disponibilizada. Todas as instala-ções sao notificadas sobre esse lançamento, alertando o usuário para o processo de atua-lizacão. Passado um determinado tempo, essa falha se torna pública, e voce certamente ain-da permanece com uma versão antiga.

AtualizaçõesManter o WP sempre rodando a última versão, sim como seus plugins e temas, e o primeiro passo para estar com a casa em ordem e com um procedimento bem executado. Ou seja – e para reforcar –, mantenha o WordPress, seus plugins e temas sempre atualizados.

Uma versão desatualizada pode deixar a por-ta dos fundos, ou a da frente, aberta ou com a chave na fechadura, e essa responsabilidade nao pode ser creditada à aplicaçao. E também e muito comum recursos complementares - leia-se plugins e temas - não terem sido bem codificados, nem uso de boas praticas e, assim, colocarem as coisas em risco.

Verificações de segurançaManter uma rotina de verificaçao e analise de seguranca e crucial para detectar alguma lacu-na e atuar de forma corretiva quando preciso.

O WordPress é seguro. Inseguro é você. Por Leandro Vieira, fundador e CEO da Apiki

As verificações podem ser combinadas para serem manuais e automatizadas. Utilizando dois processos diferentes e com metodologias distintas, e possivel uma abrangencia maior da cobertura e das análises.

O WP Scan é um exemplo de ferramenta que pode ser instalada em maquinas Linux ou Mac - que me desculpe o Windows - para atuar na verificaçao do WordPress e seus complemen-tos. Seu uso atraves do terminal e simples, e precisamos somente informar a URL do site para que o escaneamento seja realizado.

Algumas empresas, como a Sucuri, oferecem um servico de monitoramento 24/7 e envio de alertas por e-mail. Você envia um arquivo PHP para a raiz do seu site, e ele se comuni-ca com os servidores da empresa para uma analise atualizada e eficaz. Na descoberta de seres estranhos, o arquivo e a linha sao infor-mados e podemos entrar em acão para corrigir o problema.

Senhas pessoaisPor falar em portas, ao sair de casa, voce sempre as fecha - ou deveria. O seu login deve ter a mesma tratativa: logou, usou, deslogou. Simples. Se fizer uso de computa-dor público, esse processo deve ser levado muito mais a serio.

Recentemente, foi disponibilizado um re-curso que permite ao usuario desconectar as demais contas abertas de forma remo-ta por meio da pagina de ediçao do perfil. Isso e caracteristico de plataformas seguras, que se importam com o assunto e que desejam ajudar a implementar processos im-portantes facilmente.

Wordpress < 69

Page 70: Revista iMasters #14

Ainda espero o dia em que nao sera permitido criar ou atualizar os dados de um usuario que tenha uma senha fraca ou faca uso de nome de usuário como “admin”. Isso e facilitar o proces-so de ataques de força bruta para ganhar aces-so à sua administraçao e injetar malwares ou postar aquelas lindas e simpatizantes propa-gandas de Viagra, Cialis e companhia limitada.

Fornecedores de serviçosVocê e sua empresa, além de adotarem proce-dimentos de seguranca, devem cobrar o mes-mo de seus fornecedores - sejam as empresas especializadas em WordPress, as gestoras de conteúdo ou as de hospedagem.

As empresas de hospedagem são responsáveis por implantar e executar processos no servi-dor, como manter o sistema operacional e suas bibliotecas atualizados e ter uma infraestrutu-ra impeditiva de ataques DDOS, por exemplo.

A implementacão dos processos tecnicos de seguranca deve ser de responsabilidade das empresas especializadas, a nao ser que você domine o assunto e queira fazê-los. Os proce-dimentos a que me refiro sao os cuidados com atualizações, verificações e correções de segu-ranca, gestão da hospedagem do site e diver-sos outros fatores.

Diretórios, arquivos e o wp-config.php

Ao realizar o deploy, certifique-se de que os ar-quivos e os diretórios estao com as devidas per-missões - 0644 para os arquivos e 0755 para os diretorios. Nada de 0777, por favor. E por falar em arquivo, considere manter o wp-config.php um nivel acima da pasta pública do seu servi-dor. O WordPress lida bem com sua localizacão, mesmo que fora dos famosos diretórios www e/ou public_html.

No arquivo wp-config.php, ha constantes que definem o comportamento da aplica-cão - algumas são padrão e outras voce pre-cisa muito conhecer e fazer uso. As chaves de seguranca, por exemplo, são padrão e nesse servico - https://api.wordpress.org/secret-key/1.1/salt - hashes poderosos são gerados. Ainda temos as credenciais do banco de dados. Duas dicas rapidas e simples: use uma senha forte e evite o prefixo das ta-belas como “wp_”.

Vire o jogoVarias outras possibilidades de melhorias de seguranca podem ser implementadas atraves da definiçao de constantes no referido arquivo - considere conhece-las e adotar as mais perti-nentes em seu caso.

Os desenvolvedores por trás do WordPress realizam um grande esforco constantemente para garantir uma aplicacão seguranca e ino-vadora. As empresas especializadas em WP e de hospedagem tambem cumprem seu papel. Mas nos, usuários, somos falhos, teimosos e acreditamos que ataques acontecerao sem-pre no site ao lado. Considere melhorar seus processos para que assim possamos afirmar: o WordPress e seguro. E voce tambem.

Leandro Vieira é uma das grandes referências

de WordPress no Brasil, entusiasta e evange-

lista da plataforma. Fundador e CEO da Apiki,

empresa especializada no desenvolvimento web

com WordPress.

[email protected] | @leandrovieira

70 > Wordpress

Page 71: Revista iMasters #14

DESENVOLVEDOR, RENTABILIZE SEU CÓDIGO! USE A REVENDA DE SERVIÇOS PARA TER GANHOS

RECORRENTES

Primeiro mês grátis* até dia 30/06.

KINGHOST.COM.BR

MIGRAÇÃOGRÁTIS

SUPORTE24h X 7

REVENDA DE HOSPEDAGEMhttp://kingho.st/revenda

REVENDA DE E-MAIL MARKETINGhttp://kingho.st/revenda-emm

LIGUE AGORA QUE LHE AJUDAMOS COM OS PRIMEIROS PASSOS:

4003.5464

*Apenas p/ Revenda de Hospedagem plano III para contratação realizada até 30/06/2015 mediante contato com equipe comercial.

Page 72: Revista iMasters #14

Para começar, Cassio Politi, Diretor de content Marketing da Tracto e autor do livro “Content Ma-rketing – O Conteúdo que Gera Resultados”, apon-tou sete coisas que não são marketing de conteú-do. Assista ao vídeo: http://ow.ly/LBCGK

Ana Carolina Barbosa falou sobre Expectati-vas do Cliente neste 7Masters. Ela é jornalista, especialista em mídias institucionais e em bran-ding. Diretora Criativa da Cabrun! Conteúdos. http://ow.ly/LBCPJ

Duas correntes de geração de resultados usando conteúdo foi o tema da palestra de André Rosa, que é jornalista, professor universitário, mestre em comunicação pela Faculdade Cásper Líbero e dou-torando em Comunicação pela Universidade Me-todista de São Paulo. Ele também é colaborador da Tracto Content Marketing e docente nos cursos de Comunicação Social (área de novas mídias e tecnologia) das Faculdades Integradas Rio Branco. http://ow.ly/LBCNi

Tábata Cury tem 8 anos de experiência em conte-údo digital. Cuida do planejamento estratégico das redes sociais de Bradesco e ficou conhecida pelo case da poesia. Nesta talk, ela mostrou a importân-cia de não utilizar estereótipos nas comunicações da marca nas Redes Sociais: http://ow.ly/LBCJ0

Relevância e autoridade para conteúdo foi o tema da talk de Diego Ivo, CEO da Conversion empresa especializada em SEO. Diego possui mais de uma década de experiência no mercado digital e é um dos principais experts no Brasil. http://ow.ly/LBCLq

Se você quer melhorar a comunicação com o seu público, o Marketing de Conteúdo pode ser uma boa estratégia para você. No 7Masters Content Marketing os mestres que participaram – e também a platéia, discutiram diversas formas de como melhorar o conteúdo de uma marca.

Kadu Potinati é especialista em Web Video Ma-rketing, gerente do Google Business Group São José dos Campos, fundador e diretor e da em-presa Video Click, produtora especializada em vídeo online. Ele deu exemplos práticos de como utilizar vídeos como estratégia de conteúdo online. http://ow.ly/LBCSf

Felipe Wasserman falou sobre a questão da obri-gatoriedade de estar nas redes sociais - a falácia disso. Ele é CEO da Petite Box, possui 10 anos de experiência profissional com forte atuação na área de Marketing e experiência em Merchandising, Trade Marketing, Finanças e Áreas administrativas. Também é professor de extensão da ESPM em cur-sos sobre mídias sociais. http://ow.ly/LBCQW

72 > 7Masters

Page 73: Revista iMasters #14

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 sao definidos pelo iMasters e uma equipe de curadoria, liderada em 2015 por Edu Agni. Se quiser dar alguma sugestao, escreva para [email protected].

Confira aqui como foi a ediçao do 7Masters OOD. Acompanhe o calendario e assista a todos os videos em setemasters.imasters.com.br

Outro 7Masters que aconteceu foi de CSS. A casa estava cheia e tinha mais do que 7 Mestres – a plateia super participativa abrilhantou ainda mais as discussões!

Fundador do Tableless e atual coordenador do time de Front-end da Locaweb, Diego Eis apresentou um pouco do que será o CSS 4. Confira o vídeo: http://ow.ly/LBATu

CSS e UX foi discussão promovida por Raphael Fabeni, analista de interface front-end na Netsho-es, co-criador do Meetup CSS SP e co-organizador da Conferência CSS Brasil. http://ow.ly/LBB37

Rafael Lyra é programador na Leroy Merlin e manager do FEMUG-SP. Nesta talk, falou sobre SMACSS: http://ow.ly/LBB74

Rafael Rinaldi é pushador de código na Netshoes, co-organizador do FEMUG-SP e co-host do ZOFE podcast. Nesta palestra, falou sobre consistência visual em projetos web. http://ow.ly/LBBb2

Filtros com CSS foi o tema da palestra de Deivid Marques, que é desenvolvedor Front-End na Lo-caweb, organizador do Front in Sampa e da Confe-rência CSS Brasil. Veja: http://ow.ly/LBAV5

Bernard De Luna fez um desabafo na palestra LOVEHATE CSS. Ou na “não-palestra”, como ele mesmo chamou. O atual Líder de Produto no iMas-ters trouxe várias provocações, dúvidas e questio-namentos para a platéia. http://ow.ly/LBB5f

Hugo Bessa é desenvolvedor front-end na @mktvirtual e organizador do santos.frontend(). Sua talk foi sobre performance em animações. Assista aqui: http://ow.ly/LBB96

7Masters < 73

Page 74: Revista iMasters #14
Page 75: Revista iMasters #14

Muitos sites sao referências na area em que atuam devido à relevância do conteúdo. Mas não basta oferecer informacão/produto/ser-viço de qualidade, é preciso fazer com que o usuario encontre o que ele tanto procura. Sabe por quê? Porque quando ele nao acha o que precisa, desiste e abandona o site.

E agora, o que devemos fazer? Uma soluçao e utilizar um mecanismo de FullTextSearch do MySQL que, aparentemente, ira resolver o problema por um tempo. Mas digamos que o CEO de sua loja virtual resolva fazer uma megaliquidaçao, no Black Friday (por exem-plo) e, para turbinar os acessos e vender ain-da mais, promove uma megacampanha no Google e no Facebook. De repente, o fluxo de pessoas procurando desesperadamente por promocoes no site aumenta 10 vezes. É ai que começa a complicar para você que resolveu utilizar o FullTextSearch.

Sera que você estava de fato preparado para enfrentar essa situaçao? Acho que você nao vai querer surpresas e descobrir da pior ma-neira que nao estava pronto para todo esse fluxo. É justamente nesse ponto que o Elas-ticSearch irá te ajudar.

O ElasticSearch

O ElasticSearch e um mecanismo de busca open source construido em cima do Apache Lucene, poderoso motor de busca full-text. Esse recurso conta com uma amigável REST-Ful API, dados em tempo real, alta disponi-bilidade, documentos de orientacão, entre outras caracteristicas.

Empresas como GitHub, Twitter, Google, Ebay, FourSquare, Bloomberg, The Guardian, Globo.com, Yelp e Moip ja usam o Elastic-Search em producão para buscar e agregar em tempo real.

Colocando o ElasticSearch para funcionar

A instalacão do mecanismo e bem simples. Basta fazer download da última versão <https://www.elastic.co/downloads>, descom-pactar e rodar bin/elasticsearch. Ou acessar bin/elasticsearch.bat e em fazer uma requi-siçao $ curl -XGET http://localhost:9200/.

Alguns conceitos antes de começar

Para facilitar a compreensão de alguns con-ceitos e termos, elaboramos uma tabela comparativa do ElasticSerarch com um ban-co de relacional (MySQL):

Seu site tão rápido quanto o Google usando ElasticSearch

Por Breno Oliveira, Arquiteto de Software e Lider Técnico no Moip

Desenvolvimento < 75

Page 76: Revista iMasters #14

Outro conceito muito importante e entender como ele armazena os seus documentos. Quem já utilizou um banco de dados NoSQL, como MongoDB, não terá problema em com-preender. Esse mecanismo utiliza a estru-tura de JSON, suportada pela a maioria das linguagens de programacão.

Criando os primeiros registros

Para melhor acompanhamento dos passos seguintes, voce pode utilizar um cliente REST de sua preferencia. Neste exemplo, vamos utilizar um curl para simplicidade.

Modelo para inserir dados no ElasticSearch:

{ “_index”: “produtos”, “_type”: “bicicletas”, “_id”: “1”, “_version”: 1, “created”: true, “_source”: { “modelo”: “speed”, “nome”: “Specialized Tarmac”, “marchas”: 14, “cor”: “azul”, “tags”: [ “bike”, “speed”, “specialized”, “tarmac”, “14 marchas” ], “valor”: 1500000 }}

Se voce desejar buscar o registro acima, bas-ta executar a seguinte requisiçao:

$ curl -XGET http://localhost:9200/produtos/biclicletas/1

Existem duas maneiras de realizar buscas no ElasticSearch. A mais simples e apenas uti-lizando query strings na URL da requisiçao. Utilizamos essa forma geralmente para pes-

$ curl -X PUT http://localhost:9200/produtos/biclicletas/1 -d ‘{ “modelo”10: “speed”, “nome”: “Specialized Tarmac”, “marchas”: 14, “cor”: “azul”, “tags”: [ “bike”, “speed”, “specialized”, “tarmac”, “14 marchas” ], “valor”: 1500000}’

O que fizemos foi o seguinte: no Index pro-dutos no Type bicicletas, adicionamos uma bicicleta, e o id dela e 1. Caso voce não for-neca um Id para o documento do Elastic-

MySQL ElasticSearch

Database Index

Table Type

Row Document

Column Field

Schema Mapping

Partition Shard

Search, ele irá gerar um id para voce.

Você tera a seguinte resposta do Elastic-Search:

76 > Desenvolvimento

Page 77: Revista iMasters #14

quisas mais simples e rapidas.

A outra maneira, para queries mais com-plexas, e enviando um JSON com a Query DSL. Em geral, utilizamos essa opçao quan-do queremos resultados mais refinados ou fazer agregacoes entre outras features do Elasticsearch.

Agora, vamos supor que você queira buscar por bicicletas azuis, utilizando Query String:

$ curl -XGET http://localhost:9200/produtos/biclicletas/_search/?q=cor:azul

Na query acima, enviamos o Field cor com a cor desejada - no caso, azul. Assim, a query seguinte irá procurar por todas as bicicletas que tenham a cor azul. O ElasticSearch ira retorna o seguinte resultado:

{ “took”: 3, “timed_out”: false, “_shards”: { “total”: 5, “successful”: 5, “failed”: 0 }, “hits”: { “total”: 1, “max_score”: 0.30685282, “hits”: [ { “_index”: “produtos”, “_type”: “bicicletas”, “_id”: “1”, “_score”: 0.30685282, “_source”: { “modelo”: “speed”, “nome”: “Specialized Tarmac”, “marchas”: 14, “cor”: “azul”, “tags”: [ “bike”, “speed”, “specialized”,

“tarmac”, “14 marchas” ], “valor”: 1500000 } } ] }}

Para realizar a mesma busca utilizando Query DSL:

$ curl -X GET http://localhost:9200/produtos/bicicletas/ -d ‘{ “query”: { “match”: { “cor”: “azul” } }}’

Conclusão

Esta foi apenas uma introducão ao Elastic-Search, que ainda inclui features como geo-location, sugestão e analytics. Outro ponto interessante é que o ElasticSearch possui diversas libs para facilitar sua utilizacão em sua linguagem de programacão favorita. Vale a pena visitar o site deles e conferir!

Breno Oliveira é bacharel em Sistemas de Infor-

mação. Trabalha com desenvolvimento de soft-

ware a mais de 10 anos e, atualmente, compõe

a equipe de desenvolvedores do Moip, como

Arquiteto de Software e Líder Técnico. É apai-

xonado pelo que faz e ainda mais apaixonado

por café. No GitHub, está como @brenooliveira

Desenvolvimento < 77

Page 78: Revista iMasters #14

Código Livre

O F-Droid é uma loja de aplicativos alterna-tiva para a plataforma Android. Ao contrá-rio de outros softwares do gênero, como o Google Play ou a Amazon App Store, todos os aplicativos disponibilizados são livres e possuem código-fonte aberto. Ele não pos-sui tantos recursos, nem é tão bonito quanto seus concorrentes mais conhecidos, porém, através dele, é possível encontrar algumas “pérolas” e ainda economizar precisos cen-tavos. Além disso, ele exibe a licença dos apps e o link para o código-fonte, inclusive dos aplicativos livres que você já tem insta-lados no seu dispositivo e que foram baixa-dos pelo Google Play, por exemplo. Todos os exemplos a seguir podem ser baixados através dele. https://f-droid.org

Transdroid

Você tem um cliente de torrents instalado em seu servidor doméstico ou NAS? Por meio deste aplicativo, é possível controlá--lo remotamente pelo celular. O Transdroid é compatível com quase todos os clientes de torrents mais conhecidos, como µTor-rent, Transmission, rTorrent, Vuze, Deluge, BitTorrent 6, qBittorrent e muitos outros. Você pode adicionar e remover torrents, definir rótulos, receber notificações quando acabar de baixar um torrent e muito mais. http://www.transdroid.org

Yaacc

Com o Yaacc, é possível tocar vídeos e músi-cas acessíveis através de um servidor UPNP/DLNA que esteja disponibilizando os arquivos via streaming em sua rede local. Com ele, é possível também iniciar um servidor UPNP di-retamente em seu dispositivo Android e fazer o streaming das fotos, músicas e vídeos em seu celular para qualquer aparelho compatí-vel, tal como smart, TVs ou videogames de última geração. http://www.yaacc.de

Beam File Comprou aquele smartphone de última gera-ção, mas não conseguiu usar o NFC dele até hoje? Enquanto o pagamento por NFC não decola no Brasil, é possível utilizá-lo para en-viar arquivos sem fio de um dispositivo para outro. E o melhor de tudo é que apenas quem envia o arquivo precisa ter o app instalado. Basta que ambos tenham NFC e Android 4.1 ou superior. Na realidade, o arquivo é transfe-rido via Bluetooth, e o NFC é utilizado apenas para efetuar o pareamento dos dispositivos.

https://github.com/MohammadAG/android--file-beam

78 > Codigo Livre

Kemel Zaidan é um pseudo-programador, metido

a jornalista, com alma de artista e evangelista

na Locaweb.

[email protected] | @kemelzaidan

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

Informações e dicas sobre projetos Open Source

Page 79: Revista iMasters #14
Page 80: Revista iMasters #14