Novembro 2014 / Ano 03 / Edição 12 Nós fazemos a Internet no Brasil
A ERA DAS APIS #capa #pag15
PASSADO,
#web #pag08
ANÁLISE HEURÍSTICA:
#UX #pag33
LEGO MINDSTORMS:
#Robótica #pag50
PRESENTE E FUTURO DO DESENVOLVIMENTO WEB
R$24,00
FÁCIL, RÁPIDA E BARATA DE APLICAR
PROGRAMANDO ROBÔS COM PECINHAS DE BRINQUEDO
Expediente TIAGO BAETA Publisher LUIS LEÃO Editor RINA NORONHA (MTB 2759-ES) Chefe de Redação/Jornalista Responsável FABIO LODY Direção de Arte / Diagramação NATHÁLIA TOREZANI Revisão COLABORADORES Anderson Casimiro, Bianca Brancaleone, Bruno Rodrigues, Fernanda Weiden, Fernando Nazário, Fernando Veiga, Flávia Jobstraibizer, Heitor Vital do Carmo, João Batista Neto, Jomar Silva, Kleber Bacili, Leandro Vieira, Luís Otávio Cobucci Oblonczyk, Luiz Piovesana, Marcílio Oliveira, Reinaldo Ferraz, Tom Anthony. ESKENAZI INDÚSTRIA GRÁFICA Gráfica GRUPO IMASTERS Organização > 1000 exemplares > ISSN 1981-0288
Rua Claudio Soares 72, conjunto 1302, Pinheiros - São Paulo/SP CEP: 05422-030 Telefone: (11) 3063-5941 www.imasters.com.br/revista redacao@imasters.com.br Twitter: @iMasters Facebook: /PortaliMasters Os artigos assinados são de responsabilidade dos autores e não refletem necessariamente a opinião da revista. É proibida a reprodução total ou parcial de textos, fotos e ilustrações, por qualquer meio, sem prévia autorização dos artistas ou do editor da revista.
Editorial Acredito que este final de ano está sendo o mais agitado dos últimos anos. Muita coisa acontecendo, inclusive os todos principais eventos de web e tecnologia resolveram usar esse resto de 2014 para acontecer. Acho que a culpa é do grande evento que tivemos no meio do ano, aquele que não acontece na cozinha, e para não arrumar confusão não vou citar o nome, mas no qual passamos uma certa vergonha. Voltando à cena de tecnologia ainda há muito o que falar: os wearables chegaram de vez e 2015 ainda vai ter muito assunto sobre o tema; junto com ele vem o movimento do “quantified self”, no qual pessoas buscam medidas e logs para tudo que fazem no seu dia-a-dia e também usam esses dispositivos inteligentes agregados ao corpo. (Enquanto você estava lendo isso, a Alemanha fez mais um gol) Brincadeiras à parte, 2014 foi um bom ano. Muita coisa cresceu, contamos com gente super qualificada escrevendo na Revista, e queremos agradecer a todos que de alguma forma têm tornado a publicação possível. Por falar em possibilidades, essa edição foca em APIs: mais do que nunca elas estão sendo disponibilizadas pelos mais variados serviços e agora por objetos. Daqui a pouco até sua lâmpada vai ter uma API… Opa, já tem isso! Muito ainda vai acontecer em 2015, e estaremos aqui para acompanhar! Abraços,
Luis Leão Editor - Grupo iMasters www.imasters.com.br redacao@imasters.com.br
6 > Sumário
15
Capa - A era das APIs
08 Web Passado, presente e futuro do desenvolvimento web
33 UX Análise heurística: fácil, rápida e barata de aplicar
50 Dados Lego Mindstorms: programando robôs com pecinhas de brinquedo
Sumário < 7
08 :: Web > Passado, presente e futuro desenvolvimento web 10 :: Desenvolvimento Zen > Falhando e aprendendo 15 :: Capa > A Era das APIs 19 :: API > As APIs que você precisa conhecer 25 :: Conexão Vale do Silício > Memcache em larga escala 28 :: IPv6 > IPv6, C-Blocks e como isso afeta o SEO 33 :: UX > Análise heurística - fácil, rápida e barata de aplicar 38 :: Tecnologia do Futuro > Software embarcado: o futuro mora lá 41 :: Sr. Conteúdo > Conteúdo para todos 45 :: Mobile > Pagamento via mobile: como estão a usabilidade e a experiênciado usuário? 47 :: API > Cinco formas de ganhar dinheiro com APIs 50 :: Robótica > Movimento Mindstorms 55 :: Criatividade Tecnologica > Velhos hábitos e a importância da tecnologia 58 :: Comunidade > Grupo de Usuários de PHP de Santa Catarina 60 :: IoT > Conheça o Kit de Desenvolvimento de IoT da Intel 63 :: Segurança > O que você está fazendo com seus logs? 67 :: WordPress > Projetos em WordPress e a relação dos serviços e produtos para suporte e manutenção 70 :: Por aí > Fazendo a internet do Brasil pelo mundo 73 :: Por dentro do W3C > Especificações para a Web em movimento 75 :: iMasters Box A iMasters é uma revista de Tecnologia/Web aberta a novas ideias. Para colaborar envie o seu material por e-mail <redacao@imasters.com.br>
8 > Web
Passado, presente e futuro do desenvolvimento web Por João Batista Neto, Líder de Desenvolvimento do iMasters Muito mudou nesses últimos 20 anos, mas poucas coisas sofreram tantas mudanças quanto o desenvolvimento para web. Passamos por diversas fases, muitas vezes tão distintas, que chega a ser inimaginável que se trata da mesma história.
O passado O passado da web, para quem vivenciou essa época, parece ter ocorrido ontem. Os sites piscavam, coisas pulavam na tela ou da tela, verificávamos com os usuários se seus navegadores podiam exibir imagens – marquee, blink, image map - as interfaces web pareciam mais uma festa bem animada do que um local onde se encontravam informações e links para mais informações. Passada essa fase, entramos numa outra, que, apesar de ter tido um papel importante para o crescimento da própria web, foi extremamente complicada para o desenvolvimento. Quem não viu certamente já ouviu falar da guerra dos browsers - Microsoft Internet Explorer versus Netscape Navigator, JavaScript versus JScript. Essa competição trouxe avanços importantes, mas também muitos problemas. Entre os mais notórios, a falta de compatibilidade das tecnologias utilizadas. Não verificávamos mais se o navegador do usuário contava com um determinado recurso. Passamos a desenvolver para navegadores específicos. Verificávamos resolução de tela, se o usuário utilizava Internet Explorer e a versão do navegador. Chegamos ao ponto de restringir o acesso ao conteúdo, baseado na ferramenta que o usuário utilizava.
Foi uma fase sombria. Era preciso uma intervenção urgente. Era necessário que a competição trouxesse avanços, em vez de restrições. Era preciso que uma organização promovesse uma padronização.
O presente Talvez, o maior avanço que tivemos no desenvolvimento web foi a fundação, em outubro de 1994, da W3C. Se temos hoje SVG, PNG, HTML, XHTML, XML, CSS, DOM, RDF, SOAP, e vários outros, e esses formatos funcionam em igualmente em praticamente qualquer dispositivo, devemos isso à W3C. O principal objetivo da entidade, que é promover a padronização e a interoperabilidade, tem sido alcançado. O desenvolvimento tem ficado mais simples, justamente por conta dessa padronização. Se temos, hoje, a possibilidade de um desenvolvimento agnóstico, precisamos agradecer ao W3C pelo trabalho de padronização feito ao logo desses 20 anos.
“Se temos, hoje, a possibilidade de um desenvolvimento agnóstico, precisamos agradecer ao W3C pelo trabalho de padronização feito ao logo desses 20 anos” Fico imaginando como seria o desenvolvimento hoje, se ainda desenvolvêssemos como antes. Se verificávamos se o usuário tinha o plugin do Flash instalado, ou se ele tinha uma resolução de tela de 1024x768 pixels, como faríamos isso hoje? Não temos mais a menor condição de fazer esse tipo de verificação. Hoje, o acesso às aplicações parte das mais variadas fontes
Web > 9
e dispositivos. Se fôssemos verificar cada um, nossas aplicações seriam praticamente uma gigantesca estrutura condicional, com paths e branches diferentes para cada tipo de origem de acesso. Não, não precisamos mais disso.
O futuro Apesar de a web semântica já ser um assunto atual e já estarmos desenvolvendo aplicações com essa preocupação, acredito que muita coisa ainda acontecerá. Processadores como o TrueNorth, recentemente apresentado pela IBM, serão uma realidade em pouco tempo. Máquinas passarão a compreender, de fato, o conteúdo que produzimos. E se máquinas conseguem compreender o significado das coisas, essas máquinas poderão, por exemplo, aumentar a acessibilidade do conteúdo. Uma das maiores dificuldades que vejo hoje é oferecer o conteúdo para um usuário que tem uma necessidade especial. Já temos padronizações e especificações nesse sentido, mas como produzir um conteúdo para alguém que possui uma experiência diferente? Como podemos entregar a melhor experiência para quem não vê, não ouve, ou tem qualquer outro tipo de necessidade especial? Acredito que quando damos significado semântico para o conteúdo e capacidade de compreensão para as máquinas, damos um passo em direção a um conteúdo mais acessível. Semântica já é uma realidade, mas acredito que a acessibilidade ao conteúdo, independentemente da origem do acesso, das dificuldades que o usuário tenha, será a realidade num futuro próximo.
Conclusão Analisando o passado e o presente do desen-
volvimento web, os avanços tecnológicos e as diversas possibilidades de acesso ao conteúdo que temos hoje, fica um tanto complicado prever o futuro. Muita coisa mudou em 20 anos e certamente mudará muito mais rapidamente nos próximos 20. O que é fácil notar, contudo, é que atualmente o desenvolvimento web é muito mais fácil. E é muito mais fácil, pois hoje temos uma probabilidade muito maior de os meios de acesso ao conteúdo ser feito por uma tecnologia padronizada. Se temos padronização e uma maior facilidade no desenvolvimento, temos também experiências de acesso muito melhores do que jamais tivemos. Ainda há muito para se fazer no sentido de tornar o conteúdo acessível. Acredito que teremos muitos esforços em acessibilidade no futuro. Independentemente de qual caminho seguiremos, acredito que será um futuro com padronização. Por isso, como desenvolvedor web desde muito tempo, tenho muito a agradecer à W3C pelo papel que tem desempenhado na padronização das tecnologias web. Pelo bom trabalho e pelo aniversário de 20 anos, meus parabéns, W3C!
João Batista Neto é Engenheiro de Aplicações e trabalha 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 sistemas, possui várias bibliotecas reutilizáveis publicadas 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 comunidade de desenvolvedores. Também é autor de artigos no Portal iMasters e de cursos no iMasters PRO. @netojoaobatista
10 > Desenvolvimento Zen
Falhando e aprendendo Por Anderson Casimiro, entusiasta PHP e Open Source, co-criador e organizador do PHPSP
Por que projetos falham e como evitar que isso aconteça Salve, pessoal. Quero abrir esta coluna agradecendo aos meus grandes mestres André Tronchini, Michel Esber e Bruno Schrappe pela experiência e principalmente pela paciência que tiveram comigo. Muito obrigado. Por conta deles e de tudo o que aprendi com eles, eu pretendo aqui cutucar a ferida de alguns, o que eu vá falar não seja nenhuma novidade! Vamos falar sobre os principais motivos de falhas nos projetos de desenvolvimento – e como podemos nos precaver de algumas armadilhas que nós mesmos construímos, além de algumas dicas de como desenvolver melhor.
Por que projetos falham? Existem duas falhas comuns a todos os times: qualidade e tempo. Tempo? Oras, todos os seus projetos foram entregues no prazo? E mesmo se você entregou os projetos no prazo, os bugs vieram aos montes, logo após a entrega, não é mesmo? O tempo durante o desenvolvimento tem papel importante sob vários aspectos: desde o ponto (sim, esse malvado), estimativa, prazo, datas, enfim... o que não muda é que
o dia tem 24 horas para todos no projeto, desde o cliente, passando pelo desenvolvedor, pelo gerente... o tempo é igual para todos. Já a qualidade, que abordei na coluna passada, pode ser resumida em como avaliamos e controlamos o estado de algo com relação ao que é esperado dele.
Testes Testes automatizados são provavelmente a primeira medida que tomamos quando queremos melhorar a qualidade de nossos projetos. Sejam eles unitários, de integração ou comportamento, o ideal é que os realizemos de maneira sistêmica... mas por que é um problema? Não são os testes em si, mas a maneira como os usamos, principalmente quando ainda não temos experiência com isso – aí residem nossos males. Algumas vezes usamos testes unitários, mas a qualidade do projeto não melhora – será que eles são relevantes para o projeto? A resposta é sim, mas você deve buscar um tipo de teste que realmente agregue valor à expectativa – um teste de comportamento poderia ser uma alternativa mais relevante para o projeto? Entenda: quanto mais seu projeto estiver coberto por testes de diferentes tipos, melhor; mas não adianta fazer testes por fazer, eles devem agregar valor, ter um propósito. E o problema principal: confesse, você começou a aprender testes unitários no projeto em que estava trabalhando, não é? Nin-
Desenvolvimento Zen < 11
guém discute a eficácia dos testes, desde que você já conheça o conceito e a ferramenta, sabendo aplicá-los no projeto. Se você tenta testar sem conhecer o projeto, você não faz nada bem: nem o teste, nem o projeto. O ideal é que você aprenda em separado a testar para aí aplicar em seu projeto; você pode usar um Pet Project* para tal.
Agilismo Falamos também de Ágil no artigo passado, mas adotar uma metodologia pode levar ao fracasso de um projeto. Como? Se você não as utilizar corretamente. Há um manifesto explicando as motivações e os objetivos do Agilismo – dentre eles não há algo como “use porque é legal”. Muitas equipes dizem estar adotando Ágil quando não o fazem na verdade, aplicando os conceitos de responsabilidade mais operacionais enquanto os princípios que envolvem níveis táticos e estratégicos são ignorados. Ágil é sobre responder a mudanças, não rapidez. Assim como no item anterior, você deve conhecer bem a metodologia antes de aplicá-la. Tem que ser estratégico para a empresa, vir “de cima para baixo” para que todas as áreas atingidas pela metodologia, e pelo desenvolvimento, estejam preparadas. Porque Ágil dói, deixa problemas muito claros e muitos gestores não gostam dessa parte.
O que fazer para não ter problemas? A seguir vou passar minhas recomendações pessoais, baseadas na experiência como desenvolvedor, arquiteto e gestor. O que vou dizer aqui não tem nada de bala de prata e provavelmente não será novidade para ninguém, mas talvez eu apresente algumas verdades inconvenientes. Vamos aos tópicos:
- Novidades Esteja sempre atualizado. Use um gerenciador de feeds, saiba como obter informações atualizadas sobre a tecnologia que utiliza, faça cursos, vá a eventos e meetups para aprimorar cada vez mais seu conhecimento. Mas nunca aplique o que acabou de “aprender” no projeto que está tocando, com prazo apertado e que não tem espaço para novidades. Isso serve para testes, integração contínua, metodologias ágeis, bancos de dados e/ou linguagens novos etc. Preferencialmente, inicie projetos com essa premissa e, se houver a real necessidade de introduzir uma novidade, que ela esteja consolidada pelo time. Lembre-se: você pode usar um Pet Project ou um projeto paralelo para conseguir proeficiência em um novo aprendizado. Isso impactará diretamente nas medidas de tempo (entrega, velocidade) do projeto, assim como potencialmente pode melhorar a qualidade.
- Planejando Há algumas coisas que precisam ser ditas sobre este tópico. E doem, a começar pela mais dolorosa: desenvolvedores, principalmente os experientes (ou os que se consideram assim), tendem a cair na armadilha do over engineering – quando planejamos muito além do necessário, geralmente no início do projeto. Mas isso é muito difícil de mensurar. “Como sei quando passei do ponto?”. Não há resposta para isso, mas podemos fazer um exercício para tentar não sermos pegos por essa armadilha. Tente obter a visão do projeto – o que o requisitante quer atingir com ele. Tendo como base essa visão, e desprendendo-se do ego (inimigo nº 1 do desenvolvedor a caminho de ser um especialista), divida o projeto nas
12 > Desenvolvimento Zen
menores peças que conseguir e, então, engenhe a maneira mais simples de conseguir cada uma delas. Isso vai agregar valor mais rápido, pois exigirá menos esforço para ser produzido – em frente à grande solução que você planejaria em outra circunstância. Não tente prever o futuro. Baseie o seu planejamento com o que tem, com fatos. Com isso, você não se sobrecarregará e não afetará sua performance. Outro problema que afeta as entregas é justamente o prazo – não o prazo em si, mas como lidamos com ele. Quem nunca, em um projeto, ficou mais sossegado no começo e virou noites quando o prazo estava estourando? E não adiantou, não é mesmo? Seja por não ter terminado no prazo ou pela qualidade ter ficado junto com a borda da pizza da última noite, você falhou. O que fazer? Se comprometer conscientemente. Se você tem 15 dias para desenvolver, comprometa-se com o que conseguir, preferencialmente com menos, e trabalhe para que esse pequeno comprometimento esteja pronto o quanto antes. Acredite, é muito melhor se comprometer com pouco e cumprir do que se comprometer com muito e falhar. Seja sincero consigo mesmo.
- Desenvolvendo Aqui seguem algumas dicas de performance, principalmente como desenvolver melhor e mais rápido. Use um framework: um que já esteja consolidado no time – ele vai te manter focado no código que atende ao problema, e você conta com uma comunidade muito maior que seu time para manter os pilares como persistência de dados, autenticação, roteamento etc. Use um IDE: um ambiente de desenvolvimento no qual você tenha tudo o que preci-
sa para desenvolver à mão. Entenda o problema antes de desenvolver e resolva-o da maneira mais simples (e nunca simplória); aqui vale uma observação: se o problema, requisição ou tarefa chega para você de forma nebulosa, tente torná-lo melhor com a fonte, explanando como gostaria de recebê-lo. Outro ponto: organize-se em uma rotina de trabalho. Faça sua rotina, use uma técnica de gestão do tempo (Pomodoro, por exemplo), mas estabeleça para si mesmo como vai tocar seu dia de trabalho e faça isso acontecer. Quando virar rotina de fato, compartilhe com seu time - a ideia é que todos saibam quando contar um com o outro. Essa rotina vai melhorar muito seu foco e consequentemente sua produtividade. Você também pode tentar motivadores de produção em “jogos” como o Codeivate. Falando em rotina, para onde você vai quando precisa fazer algo importante? Para a biblioteca, para o café, para casa? Dificilmente encontro alguém que diz “para o escritório”. Por quê? Você é constante e arbitrariamente interrompido o dia inteiro no escritório. “Mas em casa você vai se distrair com a TV” diz o gerente. Sim, se você quiser. A interrupção é uma escolha fora do escritório. Na empresa, você ainda tem que participar de reuniões agendadas do nada. O que fazer? Procurar opções de notificação em troca das interrupções. Usar um instant messenger, e-mail etc. para te notificar que alguém quer interrompê-lo – para que você não perca o foco e atenda a uma requisição quando for mais conveniente – como é muito bem explicado pelo Jason Fried em seu TEDTalk.
Desenvolvimento Zen < 13
Meu projeto ainda pode falhar? Claro! Projetos são suscetíveis a falhas, assim como os humanos que os planejam e executam. Mas, se pudermos diminuir problemas comuns com atitudes simples, como as citadas, podemos melhorar nosso índice de sucesso. Em suma: ser sincero consigo mesmo, dividir os grandes marcos em tarefas menores, criar uma rotina, introduzir novidades após maturá-las e buscar a simplicidade nas soluções vão com certeza fazer a diferença. Agora expanda esse escopo para o time, o projeto, a empresa... Um bom e saudável trabalho em equipe também sempre é bem-vindo, assim como trabalho com motivação, gestão de tempo, projetos e desenvolvimento, além de trabalhar melhor a qualidade e a criatividade durante o desenvolvimento. Mas esses são assuntos que ainda estão por vir.
Até a próxima! *Pet Project é definido comumente como um projeto pessoal, para aprendizado, de uma linguagem ou ferramenta. A referência a “Pet” é sobre a maneira de lidar com ele – deve ser algo que nos motive a cuidar constantemente.
Links: Leia o Manifesto Ágil: www.agilemanifesto.org Conheça a técnica Pomodoro: http://pomodorotechnique.com/ Codeivate: http://codeivate.com/ “Why work doesn’t happen at work” – TED Talk de Jason Fried: http://ow.ly/Cplm5
Anderson Casimiro atua com desenvolvimento web desde 2001 também gerindo times de desenvolvimento nesse período. Entusiasta PHP e Opensource, cocriador e organizador do PHPSP. Colaborador de projetos opensource, apaixonado por Desenvolvimento bem feito. Curte um bom e velho Rock e Geek sempre. http://duodra.co | @duodraco
USE O PODER DO E-MAIL MARKETING A SEU FAVOR Uma ferramenta estratégica que permite desenvolver campanhas personalizadas para seus clientes.
155
R$
,00
,00 / mês
50.000 envios
25
Planos a partir de
Planos para agências - a partir de
R$
/ mês
5.000 envios
Utilizando nossa solução, você recebe relatórios com monitoramento por geolocalização, segmentação de público e mapa de cliques. Tudo para tornar sua mensagem precisa e eficaz.
ACESSE: KINGHOST.COM.BR
LIGUE: 4003.5464
A ERA DAS APIS
Por Kleber Bacili, CEO da Sensedia, empreendedor, developer e apaixonado por APIs
16 > Capa
As APIs estão por toda a parte, ponto. Com o “boom” das estratégias digitais em mobilidade, cloud computing, mídias sociais e os dispositivos inteligentes da Internet das Coisas, muitas empresas estão desenhando e expondo REST APIs - desde jovens startups até grandes empresas. Em setembro deste ano aconteceu, no evento Tech Crunch Disrupt, em San Francisco (EUA), a batalha das startups (Battle of Startups), competição que reúne algumas das startups mais badaladas do mundo. O ponto aqui é que praticamente todas expõem e/ou consumem APIs freneticamente para concretizar sua proposta de valor. Além disso, o Gartner lançou recentemente um estudo intitulado “Hype Cycle For Open Banking, APIs, APPs, APP Stores”, no qual determina de forma inequívoca que o mercado financeiro está passando por uma revolução, e essa revolução está sendo impulsionada pela exposição de APIs.
Ou seja, nanicos e mamutes estão no jogo das APIs. A relevância do assunto para a comunidade de desenvolvedores também pode ser vista pela lente da última edição da revista (veja em imasters.com.br/revista). Foram 4 matérias com grande destaque para o assunto API: - API nativa para gerenciamento de senhas - Device agnostic - É hora de programar a sua casa - Apiary, fazendo muito mais que documentar
Muito se comenta sobre a estratégia mobile-first, ou seja, desenhar as soluções com foco em dispositivos de tela e capacidades computacionais mais reduzidas se comparadas aos desktops. Isso certamente nos obriga a enfatizar a simplicidade. Entretan-
to, quando você combina o pensamento mobile-first com “device agnostic”, “internet of things” e também “open source”, pronto, você já não sabe mais quem será o usuário da sua solução e muito menos em que tipo de dispositivo ela será usada. Por isso, vem crescendo a estratégia API-first, que prega a separação de responsabilidades entre o front e o backend e a elegância das interfaces de, além das mensagens trocadas entre os dispositivos e seus servidores.
A estratégia API-first prega a separação de responsabilidades entre o front e o backend e a elegância das interfaces de, além das mensagens trocadas entre os dispositivos e seus servidores Se a sua empresa irá expor APIs para parceiros e desenvolvedores externos, é muito importante considerar seriamente aspectos de segurança, escalabilidade e design já no momento da sua construção.
Quer tornar sua API sensacional? Veja alguns atributos no quadro abaixo.
- Batom em lábio de porco Tudo começa com a proposta de valor da API. Se ela não trouxer valor real para o público-alvo e não tiver ligação com os objetivos de negócio da empresa, será como embelezar um porco, ou seja, não adiantará portal para desenvolvedores com documentação linda, pois, no fundo, continuará sendo um porco. Então, ela precisa trazer informações ou transações úteis que possam atacar necessidades reais para atrair outras empresas e seus desenvolvedores.
Capa < 17
- O correto design RESTful Muitas implementações de APIs não têm aplicado os princípios básicos de design RESTful, dificultando o entendimento dos desenvolvedores que devem consumir as APIs e causando problemas de escalabilidade, segurança, interoperabilidade, entre outros. O uso correto das operações do HTTP, a formação dos recursos, versionamento, paginação, caching, entre vários outros, influenciam de forma decisiva a facilidade de entendimento e de uso da API. Mesmo que as regras de negócio sejam complexas, as APIs devem ser modeladas tendo como mote a simplicidade.
- A (in)segurança dos dados abertos Seja sua API privada (usada por apps desenvolvidos por sua própria equipe), ou pública (acessível por qualquer desenvolvedor), há aspectos críticos em segurança que devem ser observados. APIs “ligeiramente escondidas” não são seguras o suficiente. As soluções vão desde um simples HTTPS, passando por tokens de aplicação, e chegando a modelos um pouco mais sofisticados, como o OAuth 2.0.
- Toda a glória aos desenvolvedores “Geek is the new sexy”, dizia uma camiseta que vi na última Campus Party, em São Paulo. Atualmente, os bons desenvolvedores, designers e empreendedores em high-tech são disputados pelas empresas que desejam construir ecossistemas digitais plugados à sua plataforma através de APIs. Então, o mínimo que se espera é que a empresa dedique um site aos desenvolvedores (que tal http://developers.[suaempresa].com. br?), no qual são oferecidas documentação técnica, chaves de acesso e sandbox
para testes das APIs, além de ferramentas especiais, SDKs e suporte diferenciado?
- Keeping it always ON Se a proposta de valor for bacana, o design primoroso, os dados trafegarem de forma segura e os developers tiverem destaque na estratégia, o sucesso virá e é só relaxar que tudo vai funcionar maravilhosamente bem, certo? Claro que não! Você sabe: seus servidores ficarão lentos sem qualquer explicação, sua API vai cair no fim de semana, você vai quebrar os clientes que te encherão de tickets e tudo pode afundar. A dica aqui é pensar em soluções de API Management que poderão colocar mecanismos de proteção dos sistemas de backend, rate limiting, garantia de SLAs e monitoração de desempenho. O ponto é: saiba dos problemas antes dos clientes e mantenha uma política transparente de comunicação.
O risco e o potencial dos dados abertos Usar APIs abertas de outras empresas traz um risco considerável para seu negócio. Quem garante que a API vai cumprir o S LA de desempenho? Ou que o provedor não vai mudar a interface e quebrar sua aplicação? Quem garante que a empresa ainda estará por aí amanhã? Essas já são dúvidas suficientemente críticas. Não torne a vida do desenvolvedor ainda mais infernal: ajude-o a gostar de você! Uma estratégia de APIs abertas tem o potencial incrível de dar mais capilaridade, aumentando o alcance dos seus dados e soluções. Como forma de inspiração, veja a pesquisa que traz diversos exemplos de empresas que construíram APIs sen-
18 > Capa
sacionais – ela está nas páginas seguintes a este artigo. A maioria, como era de se esperar, é de empresas internacionais, mas repare também que já temos brazucas abusados! Vamos além das já desbravadas APIs sociais do Facebook e Twitter, claro. Alguns segmentos vêm se destacando na exposição de APIs, como empresas de e-commerce, Internet das Coisas, Saúde e Bem Estar, Serviços Utilitários e Serviços Financeiros.
de 800 desenvolvedores cadastrados, cerca de 250 aplicativos e mais de 20 milhões de calls. Incrível, não? Se os seus dados são relevantes, torne-os acessíveis e eles chegarão a lugares que você nunca imaginou. As startups mais badaladas e as empresas gigantes mais conectadas já perceberam. Se sua empresa ainda não expõe, está um passo atrás.
Uma estratégia de APIs abertas tem o potencial incrível de dar mais capilaridade, aumentando o alcance dos seus dados e soluções Já os dados abertos governamentais merecem um capítulo à parte. Ainda de forma tímida, muitas prefeituras e órgãos de Governo têm organizado hackathons para que a comunidade de desenvolvedores possa criar aplicações inovadoras que melhorem a qualidade do serviço público e a vida das pessoas nas grandes cidades. Muitos desses hackathons, entretanto, acabam não usando dados vivos disponibilizados via API, e sim trabalhando apenas com download de planilhas e PDFs estáticos. Há um grande potencial a ser explorado aqui. Pudemos ver um exemplo desse potencial quando a Transparência Brasil, ONG de combate à corrupção, lançou sua API em agosto deste ano e, menos de 15 dias depois, durante o hackathon para promoção dos dados, anunciou que o portal de developers já contava com mais
Kleber Bacili é fundador e CEO da Sensedia, empresa especializada em tecnologia de serviços Web - SOA e APIs. É formado em Engenharia 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 sofrido e pai apaixonado da Helena e do Hugo. kleber. bacili@sensedia.com | www.sensedia.com | @kleberbacili | http://lnkd.in/bwzXVTk | contato@ cocoaheads.com.br
API < 19
As APIs que você precisa conhecer Por Luiz Piovesana, Marketing Manager na Sensedia, engenheiro, empreendedor e cervejeiro
O que existe além das famosas APIs de Facebook, Twitter, AWS e Google Maps
Serviços utilitários Twilio - Área: telefonia e SMS O Twilio é um serviço totalmente baseado em sua API. De uma maneira simples, ele possibilita que empresas criem aplicações de voz e SMS de maneira confiável e escalável. Com uma infraestrutura de telefonia web, permite que desenvolvedores integrem ligações (fazer ou receber) em tempo real às suas aplicações - tudo isso com um modelo de cobrança “pay-as-you-go”. Com certeza uma das APIs mais legais de testar, não só pela utilidade e variedade de uso, mas também pela simplicidade. www.twilio.com/api
Sendgrid - Área: envios de e-mails O Sendgrid fornece infraestrutura escalável para envios de e-mails, incluindo toda a parte de Analytics de aberturas, cliques etc. Sua API possibilita o acesso a essas informações em tempo real, a criação de sub-contas e plugins, revenda e muito mais.
http://sendgrid.com/developers Dropbox - Área: armazenamento e sincronização de arquivos A API do Dropbox permite que desenvolvedores não só criem, acessem e atualizem arquivos no Dropbox de usuários, como também disponibiliza a Datastore, uma estrutura de dados que permite a apps em diversas plataformas salvar dados dos usuários. Com milhões de usuários, é quase mandatório que um app (em qualquer plataforma) integre-se ao Dropbox.
www.dropbox.com/developers
Evernote - Área: anotações e lembretes O Evernote, através de sua API, possibilitou a criação de um ecossistema riquíssimo de apps em torno dele, elevando seu potencial a níveis fantásticos. Desenvolvedores externos podem acessar a mesma API que é utilizada pelo time interno do Evernote, incluindo a possibilidade de criar, excluir, atualizar e ler notas, cadernos e tags. Além disso, o Evernote investe bastante esforço na divulgação de apps externos para seus usuários. dev.evernote.com/
Zapier - Área: integrador de Apps Descrição: O Zapier é uma aplicação que integra aplicações, permitindo que usuários escolham gatilhos de envios de dados e atualizações entre apps. Com sua API, desenvolvedores conseguem disponibilizar integração ao seu app e aos apps já disponíveis no Zapier. É a integração na nuvem funcionando magicamente. zapier.com/developer/
20 > Capa
Financeiros Moip - Área: pagamentos online Moip é um serviço brasileiro de pagamentos online que possui grande proximidade junto à comunidade de desenvolvedores. Sua API dá a possibilidade de integração de pagamento Moip em diversos níveis, desde o check-out transparente (sem sair do website principal) até uma integração direta com o carrinho.
Credit Agricole - Área: banco O CA (Credit Agricole), um dos maiores bancos franceses, foi o primeiro banco gigante a expor APIs, resultando em mais de 40 aplicações (em sua App Store para clientes). Isso propiciou a seus clientes uma gama muito maior de ferramentas para ajudá-los na organização de suas finanças, contas bancárias e cartões de crédito. Este foi o primeiro resultado de uma nova onda no mundo financeiro, a tendência Open Banking. creditagricolestore.fr/castore-data-provider/docs/V1/rest.html
PayPal - Área: pagamentos online Similar ao Moip, o Paypal é uma gigante americana que também trabalha com pagamentos online. Um dos precursores do movimento de APIs abertas, as interfaces do Paypal incluem funcionalidades de transações, gerenciamento de invoices e contas, entre outras. www.paypal-brasil.com.br/desenvolvedores/
E-Commerce Marketplaces do Extra.com.br - Área: comércio eletrônico (marketplace) Imagine colocar os produtos da sua loja para serem vendidos dentro de um dos maiores e-commerces do Brasil? Com certeza é uma ótima opção para lojistas expandirem suas vendas e para plataformas de e-commerce oferecerem como diferencial.
https://desenvolvedores.extra.com.br/
Best Buy - Área: comércio eletrônico (catálogo)
Uma das gigantes do varejo americano, a Best Buy expõe APIs com informações de mais de 700 mil produtos, 400 marcas e 1 milhão de avaliações. Dessa forma, é possível construir apps que promovam uma melhor experiência de compra ao consumidor final. E, como não poderia faltar, há o programa de monetização por resultados gerados. https://developer.bestbuy.com/
API< 21
Public Transparência Brasil - Área: política A Transparência Brasil, uma ONG de combate à corrupção, disponibiliza APIs com as informações que ela coleta sobre políticos para que desenvolvedores criem apps que ajudem a população não só a votar com maior consciência e com base em dados, mas também a fiscalizar os políticos do congresso nacional. http://dev.transparencia.org.br/
Health Fitbit - Área: saúde e exercícios (wearables) O Fitbit é um dispositivo de coleta de informações de seus usuários relacionadas à saúde, peso, sono e atividades. Sua API dá a desenvolvedores acesso aos dados fornecidos pelos sensores. Assim, é possível que outros aplicativos relacionados à saúde, como apps de corrida, dieta e até prontuários eletrônicos, possam saber o quão ativo fisicamente um determinado usuário tem sido. http://dev.fitbit.com/
MyFitnessPal - Área: saúde e dieta MyFitnessPal ajuda usuários a controlarem sua alimentação e exercícios, e sua API possibilita a desenvolveres não só integrarem apps a ele, mas também criarem novas aplicações com essas informações. http://www.myfitnesspal.com/api
Internet das Coisas (IoT) Ford - Área: automotiva Com o boom dos carros conectados, a Ford foi uma das primeiras a criar um programa para desenvolvedores. Inicialmente, utilizando o AppLink e o Sync by Ford, é possível integrar aplicações de smartphones aos veículos. Mas lembre-se: só são aceitos apps que não tirem os olhos do motorista da estrada e as mãos da direção. E isso é só o começo. https://developer.ford.com/
Nest - Área: automação residencial O Nest tem sensores e objetos inteligentes que se adequam à vida e aos costumes dos moradores da casa, como o Termostato e o Nest Protect (sensor de qualidade do ar e fumaça). Sua API permite a criação de aplicações que interagem com esses objetos.
https://developer.nest.com/
22 > API
SmartThings - Área: automação residencial Com a plataforma SmartThings, é possível controlar objetos físicos como fechaduras e luzes. A API possibilita que essas funções sejam integradas a novos apps. https://www.smartthings.com/developers/
Xively - Área: Internet das Coisas (plataforma) O Xively funciona no modelo PaaS (plataforma como serviço), facilitando a conexão entre objetos, informações, pessoas e lugares através de funcionalidades como troca de mensagens, arquivamento de dados, fornecimento e diretório de serviços. É exatamente através da API do Xavely que essas funções são oferecidas. https://xively.com/dev/docs/api/
Variedades YouTube - Área: vídeos online A API do YouTube fornece um conjunto muito poderoso de funções, dando a desenvolvedores a opção de inserir toda a experiência do portal de vídeos dentro de suas aplicações. Além disso, é possível dar acesso a informações de usuários, possibilitando a personalização da experiência e de ações do usuário, como comentários e upload de vídeos. https://www.youtube.com/yt/dev/
Absolut Vodka - Área: bebidas A fabricante de vodcas Absolut, como forma de incentivar o consumo de seus produtos, expôs em APIs receitas de drinks e outras informações sobre suas vodcas. Dessa forma, outras aplicações conseguem utilizar esses dados para melhorar sua experiência de uso e, de quebra, divulgar ainda mais o produto. http://addb.absolutdrinks.com/docs/ Marvel Comics - Área: entretenimento com super-heróis Talvez uma das mais inusitadas, as APIs da Marvel Comics fornecem metadados do universo Marvel: criadores, personagens, histórias, crossovers e muito mais. Com certeza um prato cheio para desenvolvedores de apps de entretenimento. http://developer.marvel.com/
API < 23
Spotify - Área: música O serviço de streaming e assinatura de música expõe um conjunto de APIs que inclui desde os gostos musicais de usuários e informações sobre músicas e artistas até funções como “seguir” no navegador e tocador de música. Informações e funções úteis não só para apps focadas no consumidor final, mas também em aplicações para artistas se divulgarem.
https://developer.spotify.com/ Yelp - Área: indicações de estabelecimentos comerciais Com uma base dados extremamente rica, o Yelp ajuda usuários a encontrarem os serviços e lugares que melhor podem lhe atender localmente. Todas essas informações ficam disponíveis através de suas APIs para o enriquecimento de outras aplicações - alguns dos dados disponíveis: avaliações, comentários, endereços, números de telefone, fotos etc. http://www.yelp.com/developers
SaaS Salesforce - Área: CRM online O programa de desenvolvedores da Salesforce é uma das referências no mundo, não só pelo conjunto de serviços e informações expostas via APIs, mas também pelo engajamento criado através de ações como o “Hackathon de U$ 1 milhão”. As APIs ajudam desenvolvedores a criarem novas aplicações com base nas informações da empresa que estão no Salesforce ou sobre suas funções. Com certeza um dos mais completos espectros possíveis de ação para desenvolvedores externos.
https://developer.salesforce.com/ Superlógica - Área: gestão financeira A Superlógica é uma aplicação brasileira de gestão financeira empresarial. A API expõe as funções da ferramenta, possibilitando a criação de novas aplicações turbinadas por elas, ou mesmo de ERPs completos. http://superlogica.com/api-superlogica-v2/
Luiz Piovesana é Marketing Manager na Sensedia, empresa especializada em tecnologia de serviços Web - SOA e API. Formado em Engenharia de Controle e Automação pela Unicamp, tem um background em marketing e vendas, e é também fundador da Empreendemia e editor do canal de educação em gestão para PMEs, Saia do Lugar. Aficionado por viagens, tecnologia, séries e cervejas. @luizpiovesana | luiz.piovesana@sensedia.com | http://sensedia.com
Apiki WP One Day Um dia de especialistas em WordPress por conta do seu site O Apiki WP One Day é uma grande inovação na forma de contratar o time de especialistas em WordPress da Apiki. É indicado para manutenção, suporte e atuações em necessidades pontuais. Funciona assim: você contrata um dia de trabalho, agenda a melhor data pra você, de acordo com a disponibilidade dos profissionais, realiza o pagamento e envia o briefing contendo suas necessidades. Então, no dia agendado, você terá um especialista dedicando-se exclusivamente ao seu projeto.
> Saiba mais sobre essa novidade no site: bit.ly/apikiwponeday
25 > IPv6
IPv6, C-Blocks e como isso afeta o SEO Por Tom Anthony, consultor sênior de SEO e Head de R&D na Distilled.
Você provavelmente já ouviu falar sobre IPv6, mas ainda pode estar um pouco confuso sobre os detalhes do que é, como funciona e o que ele significa para o futuro da Internet. Neste artigo, vamos fazer uma rápida introdução ao IPv6 e discutir as implicações sobre SEO que podem resultar em roll-out de IPv6 (mais especificamente sobre o conceito de C-Blocks).
Breve introdução a endereços IP(v4) e C-Blocks Você já deve estar familiarizado com endereços IP; eles são geralmente escritos no seguinte formato:
199.181.132.250 Esse formato de endereço IP é o formato comum em uso mundialmente em todos os lugares, e é chamado de IPv4. Há quatro bytes em um endereço IP escrito dessa forma, com cada byte separado por um ponto (o que significa 32 bits no total, para os geeks). Todos os domínios e subdomínios são resolvidos com pelo menos um desses endereços IP (um mesmo domínio pode ter vários IPs, mas vamos ignorar isso por enquanto). Um conceito principal de SEO que tem origem aí é a ideia de C-Blocks (não confunda com a classe C de IPs; uma coisa diferente e que as pessoas muitas vezes confundem com C-Blocks), algo que tem estado no espaço de SEO por cerca de uma década ou mais. De forma simples, a ideia é que, se os primeiros 3 bytes do endereço IP são idênticos, então devemos considerar que os dois endereços IP abaixo estão na mesma C-Block:
199.181.132.249 199.181.132.250 Então, por que isso é interessante para nós? Por que isso é importante para SEO? A lógica que aprendemos em um passado não tão distante é que se você tiver dois IPs que estão na mesma C-Block, os sites pertencentes a esses IPs provavelmente estarão relacionados e, portanto, as ligações entre esses lugares (em média) não devem contar muito em termos de PageRank. Minha opinião pessoal é que hoje existem muitos outros meios disponíveis no mecanismo do Google para fazer essas conexões, e por isso a questão do C-Block é bem menos importante do que já foi um dia. Assim, como podemos ver (surpresa!), os dois endereços IP acima são realmente relacionados:
199.181.132.249 – disney.com 199.181.132.250 – abc.com Com certeza esses dois IPs são de duas empresas na família da Disney. Faz algum sentido que os laços entre esses domínios existam, mas isso não deve indicar um padrão, como no caso de links de sites similarmente grandes, mas independentes.
Com vocês, o IPv6! Então, há um problema com os endereços IP no formato acima (IPv4); há “apenas” 4 bilhões deles, e o fornecimento desse tipo de IP está esgotado. Temos tantos dispositivos conectados atualmente, e os criadores do IPv4 nunca poderiam ter imaginado que a vastidão da Internet seria
IPv6 < 26
tão grande depois de 30 anos. Por sorte, eles viram o problema logo no início e começaram a trabalhar em um sucessor, o IPv6 (o IPv5 acabou sendo utilizado para outro protocolo). Os endereços IPv6 são muito mais longos do que os endereços IPv4, e o formato se parece com isto:
2001:0db8:30af:01cd:450c: ff00:0042:8329 As coisas ficaram sérias! Há agora 8 blocos em vez de 4, e em vez de cada bloco possuir 1 byte (antes representados como um número 0-255), cada bloco é representado por quatro caracteres hexadecimais. Há 128 bits em um endereço IPv6, ou seja, em vez de um mísero 4.000.000.000 como IPv4, o IPv6 tem cerca
de 340.000.000.000.000.000.000.000.000 .000.000.000.000 endereços. Em alguns poucos anos vamos adentrar em um mundo no qual centenas de dispositivos em nossas casas serão ligados em rede e precisarão de um endereço IP, o que o IPv6 vai ajudar a acontecer. No entanto, também veremos se tornar cada vez mais comum sites que usam endereços IPv6 e, daqui a alguns anos, vamos começar a ver sites que possuem apenas um endereço IPv6.
Notação CIDR Antes de irmos adiante, é importante introduzir um conceito valioso para a compreensão de endereços IP, que é chamado notação CIDR. O protocolo IPv6 utiliza exclusivamente a notação CIDR (por exemplo /24), então a comunidade de SEO precisa entender esse conceito. É muito simples, mas normalmente muito mal explicado. Como dissemos, os endereços IP no formato IPv4 têm 32 bits de comprimento, por isso po-
demos olhar para o endereço IP abaixo como binário:
A notação CIDR poderia ser descrita como um modelo para descrever um grupo de endereços IP intimamente relacionados, de uma maneira semelhante à forma como um C-Block funciona. Ele é representado por um número após a barra ligado a um endereço de IP parcial (por exemplo, 199.181.132/24), que indica que o número dos bits iniciais (dígitos binários) são idênticos. O CIDR é tão flexível que poderia ser usado para descrever um C-Block como /24, porque os primeiros 24 bits (3 grupos de 8 bits) do endereço são os mesmos:
27 > IPv6
Dois endereços IP no mesmo CBlock. Os primeiros 24 bits (3 blocos de 8 bits) são idênticos. Isso pode ser representado, nesse caso, por 199.181.132 / 24. A notação CIDR é mais refinada e mais precisa do que o conceito de C-Block. No exemplo acima, os dois endereços IP não estão apenas no mesmo C-Block, eles estão ainda mais estreitamente relacionados no que diz respeito aos 6 bits no último bloco, que também são idênticos. Na notação CIDR, poderíamos dizer que esses dois endereços IP estão no bloco de 199.181.132/30, para indicar que os 30 principais bits são idênticos. Observe que, com o CIDR, quanto menor o número após a barra, mais endereços IP caberão em um bloco (porque estamos dizendo que menos bits principais devem ser idênticos).
IPv6 & C-Blocks? A notação CIDR/24 não é exatamente um nome atraente, e assim criou-se o nome “C-Block” para tornar isso mais fácil de falar, mas não se estende tão facilmente para o IPv6. Então, a pergunta é: podemos generalizar algo semelhante? O C-Block, do ponto de vista do Google e da perspectiva do SEO, serve apenas para identificar se os links são originários da mesma rede ISP. Assim, obviamente, esse deve ser o foco. Então, meu melhor palpite seria focar em como esses IPs são alocados pelos ISPs (provedores normalmente obtêm grandes blocos contínuos de endereços IP que podem ser usados nos sites de seus clientes). Em IPv4, um ISP possuiria determinadas faixas de C-Blocks e, se você pudesse ver vários links provenientes do mesmo C-Block, isso implicaria que os sites foram hospedados juntos e que haveria uma chance muito maior de que eles estivessem de alguma forma relacionados.
2001:0db8:30af:01cd:450c:
ff00:0042:8329 Ilustração de um “ISP Block” (/32); a parte azul do endereço é estável e indica o ISP. A parte vermelha pode mudar e representa os endereços daquele ISP. Com o IPv6, acredito que os ISPs serão dados de /32 blocos (os principais blocos de 32 bits serão os mesmos, deixando 96 bits para criar endereços para seus clientes), que, em seguida, vão atribuir seus usuários em blocos de /64 (perguntei a algumas pessoas, e essa tende a ser a tendência para o futuro, mas li que isso pode às vezes ser composto por blocos de /48 bits). Observe que os ISPs têm agora uma ordem de magnitude muito maior, contendo muito mais endereços IP (cada) do que toda a Internet tinha antes! Isso também significa que cada usuário final vai usar mais endereços IP em seus dispositivos ou em sua própria rede do que o total de endereços IP na versão IPv4. Bem-vindo à Internet das Coisas! Esses ISPs podem estar servindo os usuários domésticos de modo que cada usuário poderá receber um bloco de endereços IPv6 (para os técnicos: IPv6 acabará com a necessidade de uso do NAT em sua maior parte – já que todos os dispositivos de um usuário terão um IP “real”). Em outro cenário, o ISP será útil para os servidores, para os quais será atribuído um bloco /64; esse é o caso que nos interessa.
2001:0db8:30af:01cd:450c: ff00:0042:8329 Ilustração de um “Block Cliente” (/64); a parte azul indica um cliente em particular. A parte vermelha pode mudar e representa endereços pertencentes a esse cliente.
IPv6 < 28
reço IPv6 diferente (mesmo que compartilhe um endereço IPv4). O equivalente a um C-Block em IPv6 seria um bloco /32 porque é isso que um ISP geralmente atribui aos clientes (o que lhes permite então liberar mais de 4 bilhões de blocos /64 bits para seus usuários). Além disso, no IPv6, a alocação mínima é de /32 blocos, porque um único bloco de /32 não pode ser executado em vários ISPs, sendo assim, não há como dois IPs na mesma faixa de /32 blocos pertencerem a dois ISPs diferentes. Se queremos saber se os sites estão realmente relacionados a dois locais aleatórios, saber que eles estão no mesmo ISP (que é o que o C-Blocks faz) é o nosso objetivo. Além disso, caso um ISP tenha blocos de /64, terá à disposição 4 bilhões de endereços para distribuir, e essa quantidade é muito escassa para identificar associações entre os sites em blocos diferentes. No entanto, existe um contra-argumento aqui. Note que um único servidor com um bloco de IPs /64 significa que cada site deve ter um ende-
Uma observação geek: de fato, o cabeçalho “host” do http aceita um endereço IPv6 para distinguir qual site hospedado em um servidor é o site que você deseja. Dessa forma, um único servidor, com vários sites, terá um IP separado para cada um desses sites (também é possível que o servidor possua vários blocos IPv6 atribuídos, um para cada cliente diferente – e eu acho particularmente que essa é realmente a intenção e espero que se torne realidade). Então, se estou acessando uma rede de sites que estão interligados uns com os outros, então é bem provável que, se tenho somente um único servidor de hospedagem, todos esses sites estão no mesmo bloco /64 de endereços IPv6. Isso deve ser um sinal muito forte de que os sites estão interligados. No entanto, estou bastante certo de que aqueles ISPs que tentam manipular isso vão tentar evitar esse cenário e acabarão tentando criar outro bloco de endereços para cada site. Mas se eles estão hospeda-
29 > IPv6
dos com o mesmo ISP, então ainda estarão no mesmo bloco /32, pelo menos.
Recomendações de uma rede IPv6 Para redes IPv6 mais bem sucedidas, sugiro: • Os sites que estão no mesmo bloco/32, que antes seria equivalente ao mesmo C-Block, permanecem onde estão. • Sites no mesmo bloco /64, quer estejam no mesmo servidor ou pertençam a um mesmo cliente, ainda estão relacionados no mesmo nível C-Block. Estes sites precisam de nomes mais acessíveis e mais fáceis, como: • “ISP Block” para blocos /32. • “Block Cliente” para blocos /64. Então, seríamos capazes de dizer que: • Em endereços IP da categoria IPv6 presentes no mesmo ISP, os blocos assemelham-se à relação de IPs na mesma C-Block em IPv4. • Em endereços IP da categoria IPv6 no mesmo bloco de usuários, provavelmente muito semelhante, pertencem à mesma pessoa ou organização.
Lições aprendidas Como mencionei, não estou convencido de que C-Blocks em IPv4 sejam tão importantes do ponto de vista do Google como já foram um dia, uma vez que o Google utilizava esse recuso para identificar e vincular sites. Embora ainda seja útil como um substituto para o SEO, que não têm todos os recursos de um Google, não é algo que deva orientar a sua tomada de decisão. Se você
estiver executando sites legítimos, não deverá se preocupar em hospedá-los no mesmo C-Block, já que o site poderá ser manipulado pelo Google (que vai trabalhar com os dados dos IPs, seja no formato em que estiverem, de qualquer maneira). Com o IPv6, acho que os “Customer Blocks” podem ser um recurso de SEO muito importante, pois é uma relação ainda mais próxima com o que era o antigo C-Block, e isso é algo que o Google provavelmente irá usar. Ainda vai levar um tempo até que o IPv6 torne-se predominante suficiente para que tudo isso seja de fato importante, portanto, neste momento, é apenas algo a ter em seu radar para ficar por dentro quando o Google começar a aumentar a importância do IPv6 no SEO ao longo dos próximos dois anos. *** Este artigo é uma tradução exclusiva do iMasters, feita com autorização. O original está em
http://ow.ly/DuoJm Tom Anthony é consultor sênior de SEO e Head de R&D na Distilled. Ocasionalmente escreve em seu blog sobre SEO. tomanthony.co.uk | @TomAnthonySEO
UX < 30
Análise heurística: fácil, rápida e barata de aplicar Por Bianca Brancaleone, Designer Multimídia e especialista em Arquitetura de Informação e Usabilidade
Apesar do nome pomposo e intimidador, uma análise heurística pode se comparar a “passar um pente fino” em uma aplicação (sistema, site,
Porque fazer uma Análise Heurística?
aplicativo etc.) e assegurar que o usuário consiga realizar o que ela se propõe a resolver.
Muitos clientes, quando seus sistemas estão quase prontos ou até mesmo depois de lança-
“Heurística é um método ou processo criado
dos, procuram profissionais de UX para realiza-
com o objetivo de encontrar soluções para um
rem um Teste de Usabilidade. Esse tipo de teste
problema” (Wikipédia)
é extremamente útil, porém mais interessante quando queremos saber como o usuário inte-
Apesar de as heurísticas propostas por Nilsen
rage com o sistema, entender possíveis falhas
para sistemas digitais serem as mais conheci-
ou gaps.
das até hoje - provavelmente por terem sido as primeiras, criadas em 1990 - existem algumas
Um Teste de Usabilidade deve ser evitado en-
criadas depois que são interessantes: em 2004,
quanto o sistema contém erros conhecidos,
Peter Morville criou “UX HoneyComb”, que dizia
pois corre-se o risco de gastar verba e energia e,
que as aplicações deveriam ser “úteis, desejá-
no fim, ter um relatório com falhas já conhecidas
veis, acessíveis, confiáveis, encontráveis, utilizá-
que prenderam a atenção do usuário.
veis e valiosas”, e Lou Rosenfeld escreveu “IA Heuristics”. Em 2006, foi publicada a ISO 9241 “Ergonomics of Human System Interaction e, em 2011, Resminu e Rosati escreveram o livro “Pervasive IA Heuristics”. Então uma Arquiteta de Informação, Abby Covert, resolveu juntar as melhores ideias dessas quatro abordagens - que totalizavam 50 heurísticas - e criou um conjunto de 9 heurísticas que podemos aplicar em nossos projetos. As nove heurísticas apontadas por Abby dizem que um projeto digital deve ser encontrável, acessível, claro, comunicativo, útil, confiável, controlável, valioso e “aprendível” - essas são as características que devemos sempre buscar para nossas aplicações.
31 > UX
Costumo recomendar que seja feita uma Análise Heurística, até mesmo antes de o projeto ir ao ar, pois isso garante que o sistema terá sua primeira apresentação ao mundo com uma chance muito maior de aceitação, pouca frustração com erros, bugs, falhas etc.
Um projeto digital deve ser encontrável, acessível, claro, comunicativo, útil, confiável, controlável, valioso e aprendível Além do mais, não são necessários softwares específicos, laboratórios ou câmeras para se fazer uma Análise Heurística - apenas um dispositivo onde sua aplicação rodará, papel e caneca são suficientes.
Como fazer uma Análise Heurística? Nielsen recomenda que a análise seja feita por entre 3 e 5 avaliadores que estejam acostumados com os conceitos de usabilidade, mas pessoas previamente instruídas sobre os critérios de avaliação também podem ser avaliadoras. Outra prática útil é o avaliador ter um observador por perto, assim como em um teste de usabilidade, podendo propor tarefas, anotar reações e até mesmo gravar ou transcrever o relato do avaliador, caso sejam necessários melhores registros. É importante que os avaliadores não tenham contato uns com os outros para não haver influência e, se preferirem, eles mesmos podem escrever um relatório da análise seguindo os critérios passados. O avaliador pode explorar livremente o sistema e então relatar os problemas encontrados, preferencialmente relacionando-os com os critérios heurísticos e classificando-os de acordo com a
gravidade - entre 0 (não é considerado um problema de usabilidade) e 4 (problema gravíssimo que não permite a finalização de uma tarefa).
Caso prático Recentemente, trabalhei no projeto de uma universidade que, apesar de ter uma landing page, formulários validados e um ótimo design, não convertia em inscrições no vestibular. Olhando “por cima”, tudo parecia seguir o que mandam as boas práticas. Porém, ao analisar mais de perto, verifiquei diversos problemas que, como foi reportado posteriormente, quando agrupados em um único fluxo, deixava o processo de inscrição bem complicado de ser finalizado. Como falei antes, eu tinha um objetivo claro ao analisar o site: entender por que as pessoas acessavam a página, mas não completavam o processo de inscrição no vestibular. Em uma primeira navegada, para me habituar com o site antes da análise profunda, já tive o primeiro e mais grave problema: no momento de gerar o boleto para pagamento da inscrição do vestibular, o site retornava apenas um erro com um código na tela! Nem um botão de voltar, nem um link para contatar algum atendente, nada - apenas um código ininteligível para a maioria dos usuários.
UX < 32
Depois dessa experiência, voltei ao ponto de partida, a landing page, e comecei a relatar os problemas no passo a passo da inscrição. A tabela criada nessa análise mais minuciosa foi de problemas menores, como textos desalinhados que dificultavam a interpretação, e de problemas mais graves, como um botão crucial para passar para um próximo passo da inscrição que não tinha “cara” de clicável – o cursor nem virava “mãozinha” para ajudar a entender que aquilo era um botão.
Gravidade do problema
A Análise Heurística garante que o sistema terá sua primeira apresentação ao mundo com uma chance muito maior de aceitação, pouca frustração com erros, bugs, falhas etc.
Prioridade na resolução 1
Prioridade na resolução 2
Prioridade na resolução 3
Prioridade na resolução 4
Dificuldade de resolução
A aparição de um código quando deveria ser
Contei com mais dois avaliadores nesse projeto
gerado um boleto para pagamento da inscrição
que, apesar de terem relatado menos problemas
do vestibular foi considerado um problema 4 –
que eu, até por não serem da área de usabili-
ele impedia totalmente o usuário de completar
dade e sim trabalharem com tecnologia e terem
o objetivo a que o site se propunha. Já o pro-
sido previamente instruídos a como fazer a aná-
blema do botão que não parecia um botão foi
lise heurística, perceberam os mesmos pontos
considerado de grau 3 - ele não impedia, mas
críticos no processo de inscrição e até outros
dificultava bastante um usuário menos acostu-
que haviam passado despercebidos por mim
mado a interfaces de prosseguir no processo de
(aí a necessidade de mais de um avaliador!),
inscrição. Os textos desalinhados não eram um
como duplicidade de informação em um menu
problema de usabilidade, então foram apenas
dropdown e lentidão extrema ao selecionar al-
sinalizados como possíveis pontos de confusão
guns itens.
que poderiam ocorrer e foram considerados um problema de grau 0.
33 > UX
Resultados e correções Depois de erros tabulados e organizados de acordo com a importância de sua correção, o responsável pela Análise Heurística propõe as melhorias e os ajustes necessários, então uma nova escala pode ser aplicada quanto à facilidade de correção - os pontos que devem ser atacados primeiro são os mais graves e de solução mais simples. Por exemplo, para o erro da não geração do boleto, em um primeiro momento, sugeri que colocassem um telefone de contato da área responsável pelo vestibular para não “perder” esse usuário enquanto a análise e a correção não fossem solucionadas. Era uma solução paliativa, mas simples de ser aplicada e focada no objetivo da universidade. Em relação ao botão que não parecia botão, a primeira coisa que sugeri foi fazer com que a “mãozinha” do mouse-over aparecesse, já que ela é considerada um padrão para links e botões e, depois, repensar o design do botão com um designer. É importante verificar que o profissional de UX deve ter algum conhecimento de programação front-end e/ou ter um programador a quem recorrer para avaliar se as soluções propostas são as mais fáceis realmente ou se existem outras opções para serem consideradas. Como vimos, é possível que uma Análise Heurística seja feita apenas introduzindo alguns conceitos de usabilidade e utilizando nossos próprios colegas para avaliações que podem apontar erros que, de outra maneira, poderiam passar despercebidos pelos atuantes do projeto. E aí? Vai aplicar uma Análise Heurística no seu projeto?
Saiba mais: 10 Heurísticas de Nielsen http://ow.ly/CAiTL Apresentação das definições das 9 heurísticas selecionadas por Abby Covert http://ow.ly/CAj0w ISO 9241 sobre Usabilidade http://ow.ly/CAj30 Pervasive IA Heuristics http://ow.ly/CAj6n Lou Rosenfeld escreveu “IA Heuristics” http://ow.ly/CAjgU
Bianca Brancaleone é Designer Multimídia e especialista em Arquitetura de Informação e Usabilidade. Divide seu tempo entre a GS Solutions e o e-commerce Eu Compraria! Sempre pesquisando novas tendências e possibilidades que a tecnologia proporciona. @biab | bianca@gssolutions.com.br | eucompraria.com. br | gssolutions.com.br
Garanta uma formação tão ampla quanto o futuro que você merece. Há mais de 25 anos, a Impacta atua na formação de profissionais de destaque no mercado, sendo a maior referência em TI, Gestão e Design da América Latina. Com mais de 300 treinamentos e 40 certificações, a amplitude da formação Impacta se traduz em 7 escolas distintas, que visam contribuir com a geração de profissionais qualificados em todas as áreas do mercado, e uma metodologia de ensino comprovada, presente em todo o Brasil.
Conheça mais sobre a Impacta, sua tradição e diferenciais exclusivos. Invista hoje mesmo em um ensino forte para um futuro de sucesso!
informações: consultores@impacta.com.br
11 3254 2200
www.impacta.com.br blogimpacta.com.br
/grupoimpacta
@grupoimpacta
35 > Tecnologia do Futuro
Software embarcado: o futuro mora lá Por Flávia Jobstraibizer, Analista de Sistemas, Editora-chefe das Revistas Linux Magazine e Admin Magazine
Nossa vida atualmente é controlada por sistemas, que aprendem cada vez mais com nossos hábitos, nos sugerem ações baseadas em nossos comportamentos. Ao aprender com nossas ações, podem até mesmo alimentar bases de dados comportamentais Desde os primeiros softwares embarcados, criados na década de 1960, esses sistemas vêm reduzindo drasticamente de preço. Também cresceu exponencialmente o poder de processamento dos dispositivos que executam sistemas embarcados, tornando-os mais poderosos e cada vez menores em tamanho, os chamados microcontroladores. Com o custo dos microcontroladores menor do que um dólar americano, tornou-se viável substituir componentes analógicos caros, como potenciômetros e capacitores, por eletrônica digital controlada por pequenos microcontroladores. No final da década de 1980,
os sistemas embarcados já eram a norma ao invés da exceção em dispositivos eletrônicos. Hoje podemos utilizá-los em nossas geladeiras, relógios, carros e até mesmo em centrais computadorizadas para residências. Grande parte dos microcontroladores atualmente disponíveis no mercado pode ser conectada a dispositivos analógicos, permitindo o uso de diversos tipos de sensores, para os mais variados fins. Isso permite a criação de dispositivos simples e que podem ser utilizados em conjunto com outros aparelhos de forma combinada. Um exemplo são sensores que monitoram temperatura, umidade, aceleração (no caso de um velocímetro, por exemplo), campos magnéticos, e assim por diante, executando determinadas ações em caso de mudanças, como ligar o ar condicionado, acender as luzes ou diminuir sua intensidade, ou até mesmo disparar o airbag de um veículo em caso de colisão.
Tecnologia do Futuro < 36
Grande parte dos dispositivos que utilizamos atualmente possui sistemas embarcados. Seria esse o nosso futuro? Para aplicações em que um chip personalizado é essencial, existe ainda a opção de usar chips programáveis, chamados de FPGAs (Field-Programmable Gate Arrays). Esses chips ou microcontroladores são programáveis e podem ser configurados para simular o comportamento de qualquer circuito. Um único FPGA pode simular um processador simples e também outros circuitos auxiliares, como um controlador de vídeo, interface serial, e assim por diante. Os modelos recentes incluem, inclusive, uma pequena quantidade de memória RAM, de forma que você pode ter um sistema completo usando apenas um chip FPGA previamente programado, um chip de memória EPROM (ou memória flash) com o software, a placa de circuito com as trilhas e os conectores e uma bateria ou outra fonte de energia. Você atualmente está acostumado a utilizar produtos que contêm software embarcado. O caixa eletrônico é um dos melhores exemplos. Outros são os terminais de atendimento, robôs holográficos (como os que atendem a clientes em grandes lojas na China), seu computador de bordo automotivo, seu GPS (atualmente os GPS mais modernos aprendem até mesmo com os hábitos do usuário, evitando determinadas vias ou traçando trajetos
diferenciados com base no clima e trânsito). Sistemas embarcados geralmente utilizam sistemas operacionais especiais executados em tempo real, que, além de consumirem menos memória e processamento, são mais estáveis e confiáveis. A onda do momento, os Drones, possuem sistemas embarcados de processamento muito rápido, criados especificamente para essa finalidade. Assim também é com os novíssimos equipamentos médicos (que em alguns casos realizam até mesmo cirurgias de forma automática, com mínima intervenção do cirurgião), os novos relógios inteligentes lançados por várias gigantes de tecnologia e até mesmo com os tênis de uma famosa marca de fitness, que monitoram a forma como o usuário pisa no chão, contam seus passos, calorias e outras medições, enviando tudo isso para um aplicativo em seu celular.
Aprenda e foque na inovação Para quem quer estudar e investir nesse mercado que, convenhamos, será a base de todo o futuro da tecnologia, há uma infinidade de locais por onde você pode começar. O site fpga4fun.com é uma boa referência e de onde podemos aprender o básico sobre a criação e comportamentos de dispositivos que receberão software embarcado. Outro bom site dedicado ao assunto é o fpga.ch, que disponibiliza softwares, layouts de placas e até mesmo projetos prontos para estudo.
37 > Tecnologia do Futuro
No Brasil, temos o promissor projeto fpgaparatodos.com.br, que explica de forma clara e objetiva o funcionamento dos microcontroladores para dispositivos pequenos e que potencialmente receberão software embarcado em um futuro próximo. Para quem quer comprar software embarcado já pronto para chipsets específicos, um bom local é o embeddedsoftwarestore.com. Quem deseja desenvolver para arquitetura ARM ainda pode contar com ambientes de desenvolvimento e ferramentas dedicadas da Keil (keil.com), que facilitam o desenvolvimento e já possuem integração com componentes e placas de prototipagem, o que agiliza muito o desenvolvimento e os testes de software embarcado.
Quanto às linguagens de programação utilizadas para desenvolvimento de software embarcado, no topo da lista ainda está o C. No entanto, como para cada necessidade existe uma linguagem perfeita, recomendo consultar os inúmeros artigos sobre linguagens de desenvolvimento neste site: http://ow.ly/CppuQ - lá, é possível encontrar artigos sobre linguagens para vários dispositivos, métricas de desenvolvimento, artigos sobre segurança e outros assuntos relacionados. Conforme o futuro vai se aproximando, os dispositivos ficam menores e mais inteligentes, e temos de nos adaptar ao mercado e investir em tecnologias que, embora já existam há muito tempo, farão cada vez mais parte do nosso amanhã.
Carreira Os profissionais que desejam iniciar ou mesmo mudar de planos e trabalhar com software embarcado devem ficar felizes em saber que esse mercado está imensamente aquecido. Vagas para engenheiro de software embarcado, tanto em território brasileiro quanto estrangeiro, surgem todos os dias, com as mais variadas designações e pré-requisitos, lembrando ainda que o retorno financeiro dessas posições aumenta exponencialmente a cada mês. O engenheiro de software embarcado precisa ter, além dos conhecimentos de desenvolvimento de software, lógica e outros, conhecimentos sobre o funcionamento de microcontroladores, chips e processadores. Também é necessário conhecer a fundo as arquiteturas com as quais irá trabalhar para que consiga desenvolver software de qualidade, que seja processado rapidamente e não seja muito custoso para o processador.
Flávia Jobstraibizer é editora-chefe das Revistas Linux Magazine e Admin Magazine, analista de sistemas, autora de livros de informática e defensora da liberdade digital. Mãe de dois meninos lindos, solteira convicta e workaholic assumida, mantém vários projetos em paralelo nas áreas de TI e terceiro setor. Toca violoncelo, odeia cigarro e adora estudar, aprender, conversar com gente inteligente e tomar Piña Colada de vez em quando. http://flaviajobs.com.br | @flaviajobs
Sr. Conteúdo < 38
Conteúdo para todos Por Bruno Rodrigues, Consultor de Informação e Comunicação Digital
Meu direito de escolha Eu compro música na web. E livros. E revistas. Tenho assinatura de jornais online. Às vezes, tenho que me beliscar: nem acredito que tudo isso está acontecendo, que o tal ‘admirável mundo novo’ chegou e está na palma das mãos, bem na minha frente. Liberdade é assim: traz uma sensação de vento no rosto, de que você pode tudo. E pode. Mas liberdade casa com escolha. Desde que nasci, ouço que experimentar é um direito, que faz parte do ‘estar vivo’. É o exercício constante de dar uma olhadinha ali, uma petiscada lá, uma checada acolá. Liberdade é poder ficar em dúvida, experimentar e escolher. Ou não. Mas alguns discordam. Esse incômodo existe há tempos. Uma empresa desenvolve um conteúdo digital e, como parte de uma
estratégia quase centenária de marketing, oferece um período de trial em que o (futuro) comprador pode decidir se realmente quer adquirir o produto/serviço. Ou então em outra ação bastante comum, é possível ouvir um trecho de uma música ou ler um trecho de um livro. Gostou? Talvez você compre. Os mais ousados oferecem parte do conteúdo gratuito, torcendo para que sirva como isca para você pagar o pacote full. E é dessas supostas ‘ações estratégicas’ que vem a gritaria. O que poderia ser parte do jogo – eu posso ficar só no petisco e nunca pedir o prato principal – termina em revolta e análise sociológica rasteira. Pelo discurso dos descontentes, quem faz parte ‘desta geração que está aí’ fica só mordiscando o queijo na ratoeira e nunca o abocanha. Mas, afinal,
39 > Sr. Conteúdo
não seria responsabilidade sua fazer com que ele desse o próximo passo? Quem viveu a realidade pré-internet sabe que revoltante, mesmo, era a sensação de estarmos sendo feitos literalmente de otários quando os conteúdos não podiam ser experimentados ou comprados em ‘partes’. Basta ter mais de 25 anos para saber que era um saco, nos anos 70, 80, 90, ser obrigado a comprar um LP, um K7 ou um CD ‘inteiros’, por mais que você só estivesse interessado em três, quatro músicas das dez que vinham no disco.
Quem viveu a realidade pré-internet sabe que revoltante, mesmo, era a sensação de estarmos
sendo feitos literalmente de otários quando os conteúdos não podiam ser experimentados ou comprados em ‘partes’. No início dos anos 80, por exemplo, pedir para dar uma ‘ouvidinha’ em um álbum de uma ‘loja de discos’ funcionava exatamente como um presidiário recebendo visitas: o tempo era curto e a vigilância, ferrenha. Nas livrarias, os vendedores ‘perseguiam’ adolescentes que queriam – olha que cara de pau! – folhear por muito tempo os... livros! Table books importados e embalados em plástico? Que você deixasse de ser folgado e tivesse dinheiro para levar para casa. Abrir, nunca. Idem para as revistas estrangeiras. No ‘meu tempo’ não era melhor, não, em especial sob esse ponto de vista. A indústria cultural não apenas decidia o que che-
Sr. Conteúdo < 40
garia até você (independentes? Esqueça), mas também como você poderia consumir: completo, fechado, sem couvert. Mas o que hoje pode ser visto como o cúmulo do ‘capitalismo selvagem’, nem unanimidade era. Entre amigos, se o assunto entrasse na roda, você escutava uma risadinha irônica acompanhada do comentário ‘queria o quê? Comprar a música que quisesse? Sentar em um sofá dentro de uma livraria e passar a tarde lendo?’
Empreendedorismo com senso de sobrevivência: uma fórmula infalível que muda tudo, sempre. Queria, sim – tanto queria, que tive. E não por esforço pessoal, mas o de um bando de empreendedores que surgiram na virada para este século e perceberam, em especial na Internet, que era preciso por uma pá de cal nessa visão velha, moribunda, e que estava prestes a arrastar a indústria cultural para o fundo do poço. Empreendedorismo com senso de sobrevivência: uma fórmula infalível que muda tudo, sempre. Por isso, quando ouço que a geração que está aí é ‘superficial’ porque não lê um texto até o fim, assiste a apenas alguns segundos de um vídeo de uma música nova no YouTube ou fica na assinatura gratuita de um Deezer a vida inteira, não acho que é porque ela é menos inteligente, pão-dura, ‘esperta’ ou superficial. É porque ela exerce a liberdade que o mercado foi obrigado a dar para sobreviver. E isso incomoda muito o redator que passou horas escrevendo um texto, a produtora que gastou rios de
dinheiro produzindo um vídeo, o site de música que hoje precisa aceitar que boa parte do público jamais pagará para ouvir a maioria de suas canções preferidas. Tudo é uma questão de sobrevivência – só que agora a bola agora passou da mão dos ‘grandes’ para o colo dos que produzem os conteúdos. Se uma matéria está chata, eu não leio, vou para outra. Faça-se interessante que assim vão lê-lo, escutá-lo, ouvir sua música, abrir a carteira. Seja mais competente, simples assim. Eu disse ‘mais’, porque hoje a realidade pede que você ‘vá além’ (aquele clichê que adoramos falar, sempre para os outros), e ainda assim tendo consciência de que o público consome de outra forma – mais livre. Ele dá uma olhadinha ali, uma petiscada lá, uma checada acolá, exatamente como eu escrevi no início do texto. Pare e pense: se o incômodo é tão grande, será que não foi você que ficou para trás?
Bruno Rodrigues é Consultor de Informação e Comunicação Digital, autor dos livros ‘Webwriting’ (2000, 2006 e nova edição em 2014) e de ‘Padrões Brasil e-Gov: Cartilha de Redação Web (2010), padrão brasileiro de redação online’. Também é instrutor de Webwriting e Arquitetura da Informação no Brasil e no exterior. bruno-rodrigues.blog.br | @brunorodrigues
Mobile < 42
Pagamento via mobile: como estão a usabilidade e a experiência do usuário? Por Fernando Nazário, Desenvolvedor de Software com foco em mobilidade
Muito se fala a respeito do mobile e do seu potencial para os mercados físico e online. Seria desnecessário falar aqui o quanto o mobile está influenciando e revolucionando a forma como empresas, startups e até mesmo varejistas mais tradicionais veem o marketing, o atendimento e as vendas. Mas as grandes questões levantadas nos debates e fóruns que discutem o mobile é: como oferecer uma experiência que realmente satisfaça a todos? Estamos realmente desenvolvendo ferramentas e tecnologias que, além de serem responsivas, são 100% pensadas para mobile? Segundo uma pesquisa realizada pela deviceLab em 2013, 100% dos principais sites de e-commerce do Brasil apresentam algum tipo de erro que inviabiliza a compra. A mesma pesquisa mostra também que 69% dos erros críticos por fluxo de compra estão no checkout, 18% na busca e 13% no detalhe do produto.
Na distribuição dos erros passo a passo, a identificação do usuário é onde está o maior problema, com 21%, seguido pelo carrinho de compras com 17% e por entrega/en-
dereço com 16%. Com 13%, os erros se encontram no detalhamento do produto e, com 10%, nos resultados de busca. Por fim, os passos de pagamento, preenchimento de busca e confirmação de compra estão com 8%, 8% e 6%, respectivamente.
iOS 5 lidera os erros críticos Quando os testes apontaram o percentual dos erros críticos por sistema operacional, o iOS 5 teve o pior desempenho, com 16%, mas houve uma melhora para o iOS 6, que teve 9% de problemas. As principais questões encontradas no sistema operacional da Apple são relacionadas a desempenho do Safari, browser nativo do sistema. No Android, a versão com mais dificuldades foi a 4.0.3, com 13%; já os sistemas 4.0.4 e 3.2.2 apresentaram 11%. Por fim, o Windows Phone 7.5 teve 13% de erros críticos. Já no percentual de erros críticos por tipo de aparelho, os tablets apareceram com 11% e os smartphones, com 14%.
43 > Mobile
Checkout transparente para mobile Além dos erros no checkout, outro drama presente na questão do pagamento mobile é a usabilidade. Vamos pensar no processo: o usuário já adicionou os itens ao carrinho de compras e agora quer pagar de forma simples e rápida. E o que acontece? Ele é redirecionado para um intermediador de pagamentos e começa a missão quase impossível de preencher vários campos na tela do celular. Que tal melhorar essa experiência? Usando o checkout nativo para iOS e Android por exemplo, o usuário tem uma experiência muito mais focada e com menos chances de erro e desistência. Muitas vezes, quando estamos realizando uma compra pelo celular, estamos na rua ou em algum lugar público, e ter uma experiência de uso adequada é essencial. Usando o checkout nativo, pensado em mobilidade, o usuário não é redirecionado para nenhum lugar. Toda a captura dos dados acontece dentro da aplicação, de forma segura e pensada na experiência mobile. Os dados são criptografados e o pagamento é processado. Simples e direto.
Algumas dicas: - Programe os redirecionamentos para as páginas específicas (e não para a home), para a versão mobile quando os visitantes são mobile e para desktop quando os usuários vêm do desktop. - As versões mobile e desktop estão separadas para geração de reports no Google Webmaster Tools? - Você testou ou visualizou o site em vários dispositivos móveis diferentes? Verificou o tamanho dos links para que sejam facilmente clicados com um dedo? Checou se existem elementos em Flash que podem tornar a renderização lenta? Excluiu os pop-ups? - Os elementos mais importantes como “adicionar ao carrinho de compras” estão no topo da página? Nas versões para tablets, as coisas ainda fazem sentido?
Documentação mobile no GitHub: https://moip.com.br/moip-apps/
Fernando Nazário é Desenvolvedor de Software e trabalha com Mobile desde 2009. Possui experiência com desenvolvimento em Python, C# .NET, SQL Server, MySQL e Business Intelligence.Atualmente, é desenvolvedor no Moip. No twitter, é @fnazarios
API < 44
Cinco formas de ganhar dinheiro com APIs Por Marcílio Oliveira, COO da Sensedia, mineiro com muito orgulho e empreendedor
API5 Quando o CEO vê na sua agenda uma reunião para falar de APIs ele pensa: “Hmm, isso parece muito técnico. Esse não deveria ser assunto para o CIO ou o CTO?”. A resposta é “não”. Embora seja um termo técnico, a exposição de APIs vem abrindo possibilidades para modelos de negócio superinovadores. Imagine uma API como uma cola digital que conecta dois pedaços de software. Embora popularizadas por empresas digitais como Facebook, Google, Amazon, Twitter e Netflix, elas vêm ganhando espaço também na economia tradicional. Aqui, listo diversos exemplos de como as empresas podem entrar ativamente na “API Economy”.
1. Receita direta Receita direta é o modelo de negócios mais
aparente quando pensamos em API gerando receita. Nesse modelo, o cliente é cobrado pelo acesso à API. O serviço de nuvem da Amazon (Amazon Web Services) é o exemplo clássico – e de muito sucesso – da estratégia que cobra pelo uso (ou “pay-as-you-go”). As variações mais comuns desse modelo são: (i) Freemium, no qual o cliente não paga nada até um certo limite, a partir do qual as transações passam a ser cobradas; (ii) Tiered, em que a cobrança não é por transação individual, mas sim por volume de transações, agrupadas em intervalos. Exemplos muito interessantes desse modelo, além da Amazon, são a PayPal (pagamentos), Sendgrid (envio de e-mails) e o Twilio (serviços de telecomunicações). Receita direta é o modelo de negócios mais aparente quando pensamos em API gerando
45 > API
receita. Nesse modelo, o cliente é cobrado pelo acesso à API. O serviço de nuvem da Amazon (Amazon Web Services) é o exemplo clássico.
2. Canal de distribuição: programa de afiliados e marketplaces APIs são usadas como um canal de distribuição para que empresas possam aumentar sua capilaridade e, consequentemente, suas vendas. Programa de afiliados é um excelente exemplo de geração de negócios com API. Dois exemplos indiscutíveis: - A Amazon Associates permite que você coloque em seu website ou aplicativo dados de produtos relevantes para o seu público, direcionando-os para o site da Amazon. Se eles venderem, você leva uma comissão que pode chegar a 10%. - Expedia Affiliate Network (EAN): anunciou uma receita de US$ 2 bilhões através de transações (reservas de hotéis e pacotes) feitas pelos parceiros afiliados – portais e agências de viagem do mundo todo. E essas transações, vocês devem imaginar, vieram das APIs.
- Além de programas de afiliados, existem os Marketplaces, como Nova Pontocom e Mercado Livre. Explicando: a Nova Pontocom, empresa do grupo Pão de Açúcar que opera as marcas Extra, Ponto Frio e Casas Bahia, desenvolveu uma plataforma de Marketplace na qual lojistas especializados podem vender seus produtos através do e-commerce do Extra.com.br. Com esse objetivo, de descomplicar as integrações com os lojistas, a empresa desenvolveu uma estratégia de APIs abertas, disponível em http://desenvolvedores.extra.com.br. Muito mais produtos no portal, muito mais vendas.
3. Marketing/Branding A API livre é publicidade gratuita. Facebook, Twitter e LinkedIn permitem o acesso gratuito a suas APIs e, como seu modelo de negócio baseia-se em atrair a maior quantidade possível de pessoas e conteúdo para, na sequência, vender publicidade para empresas, as APIs passam a ser fundamentais na estratégia dessas empresas. A receita aqui é simples: aplicativos externos como Instagram, Foursquare, Candy Crush Saga e Spotify trazem mais usuários
API < 46
e conteúdo para as redes sociais, e o aumento de tráfego traz também mais receita com publicidade.
4. Diferenciação e “Lock-in” Os sistemas internos das empresas não costumam mudar com muita velocidade. Então, se você é provedor de uma solução de software que roda na nuvem (SaaS) e seu cliente integra os processos e outros sistemas internos dele ao seu software, é bem menos provável que ele troque seu serviço pelo do seu concorrente.
Esse é o “efeito Stickiness”, ou “efeito Chiclete”, numa tradução descompromissada. Você pode fazer mais receita cobrando pelo acesso à API do seu cliente ou simplesmente assegurar a receita futura criando barreiras para a concorrência. Mas se, além de facilitar essa integração com seus clientes, você começar a incentivar parceiros – outras empresas de software complementares ao seu serviço –, a desenvolver integrações que façam as soluções funcionarem em conjunto, você estará desenvolvendo o posicionamento como plataforma. Empresas como a Salesforce.com (líder em CRM na nuvem) fazem isso com maestria. Existe hoje um ecossistema de aplicações que consome ou envia dados para o Salesforce.com. Assim, a empresa conseguiu forte diferenciação dos seus principais concorrentes. E, claro, os iferenciais podem se refletir em seu preço. Desnecessário dizer, claro, que a forma mais rápida e eficiente de integração tanto com clientes quanto com parceiros é através de APIs.
5. Redução de custo Bem, reduzir custo não é uma forma de au-
mentar receitas, mas certamente pode ser encarada como uma maneira de melhorar a rentabilidade de qualquer empresa. Então, podemos mencionar aqui alguns cenários de uso de APIs que não têm o propósito de ampliar os canais ou gerar receita direta, mas que têm seduzido muitas empresas. Atualmente, a maior parte dos aplicativos móveis foca na interface visual, sendo que os dados e as transações de negócio continuam sendo realizados pelos sistemas internos. Então, não faz sentido as empresas investirem no desenvolvimento de aplicativos móveis sem se preocuparem com a forma como os dados e os serviços são expostos. Algumas empresas encaixam essa abordagem dentro de uma estratégia de Omnichannel. No varejo, por exemplo, a empresa pode ter o website, o aplicativo móvel para consumidores, os comparadores de preços e os parceiros na cadeia de valor, todos acessando um mesmo conjunto de APIs. Nesse cenário, imperam consistência, produtividade e simplicidade.
Marcílio Oliveira é diretor de Operações (COO) da Sensedia. Formado na Universidade Federal de Viçosa (UFV), mestre pela Unicamp e professor do MBA de Gestão de Projetos e SOA na USP e IBTA. Liderou projetos de implantação de processos críticos de reuso, componentização e governança SOA em grandes empresas, sendo responsável pelos desenhos de solução em serviço do time de Professional Services da Sensedia nos últimos seis anos. Participou da criação do laboratório de inovação em software da Ci&T/Unicamp em 2004, e é o atual responsável pelo Escritório de Inovação da Sensedia. marcilio.oliveira@sensedia.com | @MarcilioSO | http://sensedia.com
47 > Robótica
Movimento Mindstorms Por Fernando Veiga, Lego Robotics Scientist Com a explosão das novas tecnologias que vêm invadindo o mundo imaginário das crianças, a Lego resolveu utilizar o inovador kit Lego Mindstorms como ferramenta no ensino para jovens e adolescentes, na formação do conhecimento básico. Chegando à sua terceira versão, o Ev3 (Evolution 3) promete revolucionar os estudos de matemática e robótica nas escolas. Mas não é de agora que essa tecnologia vem querendo invadir as salas de aula de todo o mundo. Em 1998, foi lançada a primeira versão oficial do Lego Mindstorms, batizada de RCX (Robotic Command Explore) - existiram outras versões anteriores como o Bloco Vermelho MIT, de 1995 e o Lego Discovery, de 1996, um bloco azul muito similar ao RCX, mas foram versões beta usadas com turmas de 4º e 5º anos. Isso foi uma parceria com o Instituto de pesquisas do MIT, liderada por Seymour Papert, matemático e grande pesquisador sobre o uso dos computadores na educação e também criador da linguagem de programação Logo. Papert defendia a ideia do Construtivismo, de Jean Piaget, em que se permite que a criança construa seu conhecimento através de algumas ferramentas, como o computador aqui citado. O RCX foi um grande avanço para a inserção do estudo de tecnologias em sala de aula. Seus kits eram compostos por peças mecânicas da linha Lego Technic, como engrenagens, cremalheiras e polias, e as vigas traziam, além do bloco programável, sensores para a captação de variações ambiente. Porém, o que mais chamava a atenção era sua forma lúdica e simples de programação utilizando o Robolab, um software baseado totalmente no LabView, da National Instruments. Com ele, a criança tinha apenas que arrastar os blocos de comando das funções que gostaria de utilizar, interligá-los utilizando
sua lógica e transferir por meio de IR para o Bloco RCX, e ele obedecia a todos os comandos dados pelo software. O RCX ficou no mercado 8 anos (de 1998 a 2006) e foi utilizado por muitas escolas e universidades, até mesmo aqui no Brasil, como na rede SESI e escolas particulares como o Centro Educacional Cidade El Shadai, em Santo André (SP). Em agosto de 2006, a Lego inovou novamente com apoio do instituto de pesquisas do MIT, o Media Lab, e criou o que até hoje é considerado seu maior trunfo para a educação, o kit Lego Mindstorms NXT 2.0 (abreviação de NEXT). Utilizando o processador Atmel 32-bit ARM, muito superior ao seu antecessor, trazia também consigo uma vasta gama de sensores. Seu software foi amplamente renovado, trazendo interfaces gráficas melhoradas e mais intuitivas, ajudando na praticidade da construção do conhecimento e da logica de programação. Com uma ampla área de trabalho, o NXT software trouxe conforto ao trabalhar montagens bloco a bloco.
Robótica < 48
Programando no software NXT-G No NXT software separamos os blocos por suas tarjas - são sete no total e cada uma representa uma função no programa: Verde: blocos que comandam as ações externas por meio de atuadores, motores, sons, visor etc. Amarelo: utilizados para leituras dos sensores dinamicamente; através deles, podemos conferir informações e repassá-las para algum tratamento. Laranja: utilizados como blocos de fluxo e contam com funções de Loop e Switch. Vermelho: blocos de tratamento, utilizados para operações matemáticas e booleanas. Vinho: padrão avançado dos blocos, com eles calibramos os sensores, convertemos strings e abrimos conexões Bluetooth. Azul: no NXT software podemos criar nossos próprios blocos de comandos diversos, e todos ficam salvos nessas tarjetas de cor azul.
Todos são acompanhados de painéis de controle, nos quais configuramos as ações de seus blocos.
Programar no NXT software consiste em arrastar os blocos para a área de trabalho de forma a utilizar a logica e configura-los. Vejamos o exemplo em que o robô andará para frente e quando houver um toque no sensor e ele retornará e desviará seu caminho.
49 > Robótica
Programar no NXT software consiste em arrastar os blocos para a área de trabalho de forma a utilizar a lógica e configurá-los. Veja um exemplo no qual o robô andará para a frente e quando houver um toque no sensor ele retornará e desviará seu caminho. Podemos também fazer o tratamento de variáveis com valores dinâmicos. Nesse próximo exemplo faremos no visor do bloco uma imagem rodar infinitamente.
Para tratamento de dados, utilizamos o Data Hub (pontos de acesso) e o Data Wire Types (fios de ligação), que são as linhas de comunicação entre os blocos. A programação em blocos do Lego Mindstorms é um tanto intuitiva, podendo se utilizar de várias lógicas para resolver o mesmo problema. A versão educacional traz consigo um software para registro de dados, o “Data logging”, no qual podemos fazer um trabalho mais aprofundado em leitura de sensores para maior aproveitamento de seus recursos e interação com o ambiente. Um exemplo simples de registro de dados seria estudar o nível de luz de um ambiente ao longo de um período de tempo, como quando você acende uma luz fluorescente que começa um pouco fraca, e depois clareia gradualmente ao longo do tempo. Você pode ver isso, mas para determinar quanto tempo leva para chegar ao “brilho total”, ou o quanto ele realmente aumenta de brilho durante os primeiros minutos, precisa praticar o registro de dados gradativos. Para esse teste, foi utilizado o protótipo Path Measurer do site http://www.nxtprograms.com, adaptando a ele os sensores necessários.
Ele também pode ser programado em outras linguagens, como C, C++ e JAVA, podendo se interligar com aparelhos Android. O NXT 2.0 foi um grande avanço, e pode ser usado na educação tecnológica de crianças e adolescentes, tanto que foi criada uma competição mundial que utilizam essa tecnologia, chamada de First Lego League (FLL). Jovens de todo o mundo treinam para participar do torneio, que propõe que um grupo de alunos construa e programe seus robôs para resolver desafios específicos específicos dados pelos líderes do torneio em um campo de provas. Mas não é só isso: a cada ano, esse torneio traz temas de pesquisa relacionadas aos problemas atuais para que os alunos tragam soluções. Tudo isso baseado em valores éticos e morais desenvolvidos por cada equipe. A chegada do Lego Mindstorms EV3 traz consigo possibilidades a serem trabalhadas em novas áreas de ensino já que, além de ter um hardware superior ao NXT, a nova edição tem um processador Sitara AM1808 da Texas Instruments (núcleo ARM9 de 32-bits, instruções ARMv5 e clock de 300 MHz), com um aumento considerável na velocidade de
Robótica < 50
processamento e uma nova CPU. O EV3 conta com 64 MB de RAM e 16 MB de memória flash, enquanto o NXT 2.0 possuía apenas 64 KB de RAM e 256 KB de flash. Além disso, ele tem a capacidade de ampliar seu armazenamento, por meio de um cartão micros, até 32GB, possui conexão Wi-Fi e ganhou uma OUTPUT extra para o controle de um quarto motor. Seu programa traz recursos de CAD para montagens de projetos diretamente no software, sua programação ainda segue a linha do Labview, contando com aproximadamente 17 blocos envolvendo sensores e motores (sem contar com operações de lógicas e matemáticas), e cada bloco traz suas opções próprias. Ele foi adaptado para os novos padrões de programação da Lego dos kits WeDO para crianças do fundamental, e ainda conta com retrocompatibilidade, isto é, os motores e até mesmo o software podem ser usados no NXT 2.0 Os “blocos” sãos as unidades elementares da programação do EV3. Trata-se de uma linguagem gráfica na qual cada string e operador são repre-
sentados por blocos concatenados em uma linha. Assim, para fazer o robô andar para frente continuamente, colocamos um bloco de loop na thread (o processo). Em seu interior, incluímos um bloco de acionamento do motor, no qual serão especificadas a potência e a velocidade de rotação. Note que a metáfora do acionamento do motor estar em loop se aplica visualmente: o bloco do motor fica dentro do bloco do loop.
Programando no software EV3 Sua interface mais simples trouxe maior conforto ao programar eventos mais avançados. Foram excluídos alguns itens nesse novo software, como os painéis de controle, e agora as configurações são feitas diretamente nos blocos que ainda mantêm suas cores de tarjas padrão. Houve modificações apenas nos blocos avançados, que da cor vinho passaram para a cor azul escura.
Aparência dos novos blocos O software EV3 utiliza mais os conceitos de Data Hub e Data Wire Types para maior utilidade dos tratamentos de dados, deixando-os mais organizados no visual. Exemplos de programação -Tratamento de variáveis pelo software ev3
51 > Robótica
Os editores de blocos e mídia também foram melhorados. O usuário pode criar um bloco customizado com até 10 parâmetros de matemática, lógica ou texto. O editor de imagens, por sua vez, tem uma interface parecida com a do Microsoft Paint e mostra o número real de pixels da tela, de modo é possível ter total controle sobre o que aparecerá no display. O editor de áudio é bem simples, mas permite gravar e fazer cortes secos nos clipes, que podem ter até 10 segundos. Outro ponto legal é que os programas podem ser transferidos para o robô em forma de “aplicativo”. Na prática, isso quer dizer que o usuário pode acessá-los em um pacote com ícone e tudo, em vez de ter que procurar o executável no sistema de arquivos. O site da Lego Mindstorms possui um fórum de relacionamento que permite a todos os usuários postarem suas experiências com os kits, programações e até passo a passo de suas montagens, formando assim uma grande rede de usuários com uma ampla variedade de informações. A Lego conseguiu rodar uma versão personalizada do sistema Linux no Mindstorms EV3, ampliando muito as possibilidades de programação. De certa forma, o EV3 é como um Raspberry Pi mais especializado. A compatibilidade com o kernel do Linux abriu caminho para uma série de hacks. Membros da comunidade chegaram a criar um fork do Debian 7.0 para rodar no EV3. Com o nome de “ev3dev”, ele é um Debian quase que completo (Linux 3.3.0). Essa distribuição permite que o EV3 rode tudo que roda em um Debian comum, incluindo servidor Apache.
vem estudando novas formas de aplicações dos materiais Lego no Ensino Básico. Desde 2011, venho trabalhando com ele para levar as suas mais novas descobertas às salas de aula do Centro Educacional Cidade El Shadai. No ano passado, tivemos uma grande experiência: participamos pela primeira vez de um torneio FLL com a equipe All Black, e nos surpreendemos com nossa colocação de 16º em uma competição que contava com mais de 50 equipes, sendo que várias delas já eram veteranas nesse tipo de evento. Este ano, unimos forças com a Equipe Things Hacker Team e formamos a equipe kids Things Hacker Teens para a competição. Já começamos os treinamentos e estamos esperançosos para chegar e mostrar nossos conhecimentos, e quem sabe até garantir uma vaga na final nacional em Brasília. Para quem quiser se aventurar com os kits Mindstorms, em São Paulo, próximo à avenida Paulista, abriu o centro de treinamento Manufatto, na rua Cubatão 97 – Paraíso, local especializado em programação e robótica Lego. Assim, a Lego provou ser mais que uma ferramenta - uma ponte eficaz ligando as crianças de hoje com os futuros profissionais de amanhã.
E no Brasil? No Brasil, pesquisadores como o Prof. Dr. Flavio Campos Rodrigues, Doutor em Tecnologias e Robótica na Educação Básica pela PUC-SP,
Fernando Veiga é Lego Robotics Scientist, professor de ensino tecnológico e robótica para crianças e adolescentes no Centro Educacional Cidade El Shadai e membro Integrante do Things Hacker Team. pfveiga7@ gmail.com
Criatividade Tecnológica < 52
Velhos hábitos e a importância da Tecnologia Por Fabio Lody, Diretor de Arte do iMasters A Internet é hoje, o meio de comunicação que mais cresce no mundo e já superou de longe a evolução do rádio e da TV.
tablets vendidos. Só de usuários de internet no celular temos hoje um contingente de cerca de 80 milhões de pessoas.
Antigamente, falava-se muito sobre os jingles dos rádios e aqueles jargões usados na novela. Ou seja, grande parte do dia-a-dia das pessoas era conversar e discutir algo que ela tinha ouvido ou assistido no dia anterior.
Já o estudo TIC Domicílios, divulgado recentemente pelo Centro Regional de Estudos para o Desenvolvimento da Sociedade da Informação (Cetic.br), aponta que a porcentagem de brasileiros que acessa a internet por meio de celulares mais do que dobrou em apenas dois anos. Segundo a pesquisa, esse valor vem apresentando forte crescimento nos últimos anos, representando 4% em 2010, 15% em 2011, 20% em 2012 e chegando a 31% em 2013.
Hoje as coisas mudaram. Praticamente todos os celulares possuem internet, fazendo com que a grande maioria dos usuários esteja online o tempo todo. Ou quase. Em 2020, daqui a apenas sete anos, a população mundial estará totalmente conectada. Em apenas sete anos a internet estará acessível até mesmo em partes do mundo onde não há eletricidade ou faltam serviços básicos como água limpa, por exemplo. É o que prevê o presidente do conselho executivo do Google, Eric Schmidt. Se isso soar como utopia, atente para o fato de que até o final deste ano 2,7 bilhões de pessoas – ou seja, 39% da população do mundo, estarão usando a internet. A informação é da União Internacional de Telecomunicações. A Internet no Brasil atingiu a marca de 102 milhões de usuários no mês de abril. Essa foi a primeira vez que foi contabilizado mais de 100 milhões de usuários únicos no País, no período de um mês. E o crescimento é exponencial. No Brasil, um celular é ativado por segundo e, por minuto, são vendidos cinco tablets, 11 desktops e 17 notebooks. O Brasil deve fechar 2014 com cerca de 6 milhões de
Com isso, muitos de nossos hábitos, apenas mudaram de lugar, digamos assim. Alguns eventos continuam acontecendo na mesma forma e levando o mesmo tempo que antes, porém somos atualizados de maneira mais rápida. Graças a recursos como câmera digital, ligações por vídeo e claro, as midias sociais, recebemos uma enxurrada de informações diariamente. Mesmo com o passar do tempo e com todas informações ao nosso alcance, velhos habitos se mantiveram. Podemos ver isso no caso recente da holandesa Zilla Van Den Born, de 25 anos, que forjou uma “viagem dos sonhos” para Camboja e Tailândia sem nem sair de sua casa, em Amsterdam. Usando a tecnologia a seu favor e programas como Photoshop, Zilla publicava as fotos em redes sociais e as enviava a conhecidos.
53 > Criatividade Tecnologica
A estudante de design gráfico convenceu amigos e familiares de que estava viajando. Ela, inclusive, falava com os pais por Skype usando um quarto personalizado com decorações de natal, montado estrategicamente para enganá-los. Tudo foi feito muito bem pensado desde o dia da partida. Zilla pediu aos pais que a levassem ao aeroporto mais próximo. Lá, ela voltou para casa de trem e, para fazer registros mais reais, chegou a visitar comunidades budistas na cidade. A maioria das fotos, porém, era feita em casa. Para simular as águas cristalinas das praias, por exemplo, Zilla usou a piscina de casa, modificada no computador. Toda a invenção teve um motivo. Em entrevista ao jornal britânico Daily Mail, Zilla explicou que queria mostrar a manipulação das redes sociais. “Fiz isso para mostrar para as pessoas que nós filtramos e manipulamos o que a gente posta nas mídias sociais. Criamos um mundo ideal online no qual não se pode mais encontrar a realidade. Meu objetivo era provar como é comum e fácil para as pessoas distorcerem a realidade”. Isso só prova o quanto continuamos a ser manipulados. Antigos hábitos, como a inveja, o egoísmo e o exibicionismo, se mantiveram mesmo com o passar dos anos. Mas calma, podemos e devemos usar tudo isso a nosso favor. Ao menos parte da tecnologia atual pode ser usada para o nosso bem. Um grande avanço graças a tecnologia, é o comércio eletrônico. Fazer comprar em lojas de países diferentes, tarefa impossível antes, hoje é algo bem comum. Obiviamente devemos tomar todos os cuidados, mesmo que pareça a tarefa mais simples e segura do mundo. Afinal, devemos
desconfiar de tudo e de todos, como o caso da holandesa nos mostrou. Bem, o e-commerce veio para ficar. Bons valores de compra, marcas que nem sempre são encontradas no Brasil aliados a muitas vezes um preço bacana, agradam ao consumidor e compensam no prazo de entrega final. Isso cria novas oportunidades, aumentando o volume de negócios na web. Os números falam por si: enquanto o comércio varejista tradicional tem a expectativa de crescimento em torno de 4,5% em relação a 2012, dados da pesquisa WebShoppers, feita pela e-Bit, em 2013, apontam que o e-commerce crescerá 25% neste mesmo período, com um faturamento de R$ 28 bilhões. E não é só de e-commerce que estavamos falando. A web trouxe um leque enorme de novos negócios. Hoje sim, é possivel almejar aquela tão sonhada casinha na praia, próxima à areia, apenas gravando vídeos, alimentando páginas em midias sociais ou desenvolvendo projetos à distância, sem sair de casa. A internet veio pra ficar. Nos trouxe diversos beneficios que antes sequer fazíamos ideia que poderiam existir. Pensando bem, até que não é tão ruim.
Fabio Lody é Diretor de Arte do iMasters e colunista de Photoshop. Desenvolveu trabalhos para vários países, foi aluno de Alexandre Wollner e participou da equipe de criação de projetos como Lollapalooza Brasil, Centenário do Santos, Centenário Vinícius de Moraes, Futebol Run, Expo Money, Super Bike Series, Galinha Pintadinha, FIC, MMA Rocks entre outros. Conquistou o Best Mkt Design 2012 com a marca do centenário do Santos. É praticante de Krav Maga e está há 11 anos nessa vida maluca de subir/descer a serra todos os dias por morar em Santos. @fabiolody
Comunidade < 55
Grupo de Usuários de PHP de Santa Catarina Por Luís Otávio Cobucci Oblonczyk, core member do PHP-SC
No final de 2009, eu retornava a São Paulo, cidade onde nasci, para participar pela primeira vez do PHP Conference Brasil, um dos eventos de maior destaque da comunidade brasileira de PHP. Eu era apenas um desenvolvedor chato e com mania de perfeição que utilizava o PHP como linguagem para codificar meus projetos, mas até então desconhecia as comunidades da linguagem. Eu tinha acabado de pousar no Aeroporto de Congonhas e vivia um pequeno conflito: precisava ir até Osasco, e a única certeza que tinha é que pegar um taxi sozinho seria caro pra caramba. De repente, avisto seres estranhos, como eu, que traziam o semblante de programadores. Eles eram três e vestiam uma camiseta branca com a bandeira do Estado de Santa Catarina e o logotipo do PHP. Eram a resposta para a minha angústia. Perguntei se estavam indo ao evento e quando recebi uma resposta positiva sugeri que fosse incluído na divisão do transporte. Assim fomos, os quatro seres estranhos, de taxi até os confins do universo, digo, Osasco. Foi dessa maneira que conheci o Grupo de Usuários de PHP de Santa Catarina, mas engana-se quem pensa que foi fácil me tornar membro do PHPSC. Tive que ser 15 vezes mais chato que o meu normal, enviando vários e-mails e mensagens dizendo que queria participar e ajudar. E apenas depois do retorno da minha aventura em Goiânia, em 2012, que me tornei oficialmente um membro do grupo.
Minha primeira missão foi auxiliar na organização do PHPSC Conference, um evento que desde 2008 passeia pelo Estado de Santa Catarina promovendo conhecimento e discussões sobre temas interessantes do mundo PHP. Na época, passei algumas noites em claro para que conseguíssemos realizar a edição de 2012, e não me arrependo nem um pouco. A experiência foi simplesmente fantástica, e ainda hoje me sinto motivado ao notar que minha pequena contribuição beneficia várias pessoas. É claro que meu envolvimento é extremamente recente, afinal o grupo existe desde o final de 2007, quando foi fundado, após o PHP Conference Brasil neste mesmo ano, pelos mestres Alexandre Altair de Melo, Elton Minetto, Silvano Girardi e Thiago (Tatto) de Castro, com os objetivos de expandir o uso do PHP, aumentar o conhecimento técnico dos profissionais e unir desenvolvedores de todo estado.
Tornar-se um membro do Grupo de Usuários de PHP de Santa Catarina não é mais tão difícil ou demorado – nem precisa ser um ser estranho ou programador. Basta ser indicado ou enviar uma proposta pelo nosso site. Existirá uma simples votação entre os membros e, pronto, você será o mais novo colaborador do grupo!
56 > Comunidade
Tudo começou como tantos outros grupos de usuários: uma simples lista de discussões. O pessoal foi se conhecendo, fazendo pequenos encontros, dojos, conferências e, claro, os PHPingas - afinal não existe evento de PHP de verdade no Brasil sem um bom PHPinga, né? Hoje somos 14 coordenadores espalhados pelo território de Santa Catarina. Não é muito, mas mesmo assim conseguimos realizar bastante coisa para a comunidade, como: ajudar na seleção de palestras em eventos que ocorrem no estado, apoiar e organizar encontros e manter projetos open source. Sou bem ambicioso com relação ao futuro do PHPSC e, assim como os outros coordenadores, tenho várias ideias de como melhorar a comunidade do Estado. Encontros regulares acontecendo em mais cidades, um site com mais informações e atualizações, hangouts com discussões técnicas e parcerias com instituições de ensino e comunidades do País são alguns desejos que alimento. Para conseguirmos realizar essas e outras coisas, precisamos de mais pessoas, e você também pode nos auxiliar a trabalhar melhor pela comunidade de PHP de Santa Catarina. Tornar-se um membro do grupo não é mais tão difícil ou demorado – nem precisa ser um ser estranho ou programador. Basta ser indicado ou nos enviar uma proposta pelo nosso site. Existirá uma simples votação entre os membros e, pronto, você será o mais novo colaborador do grupo!
Hoje posso dizer que sou um desenvolvedor chato, com mania de perfeição e que se orgulha de ser parte do Grupo de Usuários de PHP de Santa Catarina, trazendo conhecimento e informação, unindo pessoas, promovendo encontros, firmando parcerias, convivendo e trabalhando com pessoas incríveis e, principalmente, disseminando e defendendo o uso profissional do PHP para o desenvolvimento de softwares.
Conheça o PHP-SC http://www.phpsc.com.br http://github.com/PHPSC http://twitter.com/PHP_SC http://facebook.com/santa.catarina. elephants http://google.com/+PhpscBr contato@phpsc.com
Luís Otávio Cobucci Oblonczyk é Zend Certified Engineer em PHP 5.3 e PHP 5.5, apaixonado por boas práticas e qualidade de software com foco em PHP. Palestrante e colaborador em diversos projetos open source. É cofundador e consultor da Darwinsoft, secretário da Associação Brasileira de Profissionais de PHP e core member do Grupo de Usuários de PHP de Santa Catarina. @lcobucci |github.com/lcobucci
loT < 57
Conheça o Kit de Desenvolvimento de IoT da Intel Por Jomar Silva, Community Manager de IoT do Grupo de Software da Intel no Brasil.
Recentemente, foi lançado o Kit de Desenvolvimento de IoT da Intel, que suporta as placas Intel Galileo (primeira e segunda geração) e a Intel Edison, e é composto pelo Grove Starter Kit, um kit de sensores que podem ser utilizados de forma simplificada, sem a necessidade de uma protoboard. O pacote de software do Kit contém uma imagem Linux baseada no projeto Yocto, um conjunto de bibliotecas e utilitários para facilitar o desenvolvimento. Para os desenvolvedores Arduíno, o Kit oferece uma versão específica da IDE Arduíno compatível com as placas da Intel. Desenvolvedores C/C++ poderão utilizar uma versão especial do Eclipse, que já possui os pacotes de extensão para permitir o cross-compiling
das aplicações e a depuração remota (via conexão de rede) nos dispositivos. A imagem SD conta ainda com Python e Node.js, permitindo que desenvolvedores Python e JavaScript possam utilizar essas linguagens nos dispositivos. A Intel lançou ainda uma edição especial do Intel XDK, chamada de Intel XDK IoT Edition, que suporta o desenvolvimento e a depuração remota nas placas Intel Galileo e Edison. Em parceria com a Wyliodrin.com, é possível fazer a programação visual dos dispositivos utilizando Scratch, que pode ser traduzido para Python e JavaScript, e possui conexão via Internet com as placas, permitindo que o desenvolvimento seja feito de dentro de um navegador e que os programas sejam trans-
58 > loT
feridos pela Internet diretamente para os dispositivos.
O pacote de software do Kit contém uma imagem Linux baseada no projeto Yocto, um conjunto de bibliotecas e utilitários para facilitar o desenvolvimento. A Intel oferece ainda o Intel IoT Analytics, um serviço para coleta, armazenamento e processamento de dados na Nuvem, permitindo a execução de regras nos fluxos de dados para gerar alertas baseados em ferramentas de análise avançadas. Esse serviço é gratuito para uso limitado e não comercial.
mentando uma API de alto nível para a utilização de sensores, atualmente suportando os sensores existentes no Grove Starter Kit. Em resumo, independentemente do nível de experiência do desenvolvedor, o Kit oferece um caminho de aprendizado no mundo de IoT, do scratch ao C/C++. Conheça mais o Kit, e mãos à obra! http://software.intel.com.br/iot.
Desenvolvedores avançados poderão ainda contar com uma versão de avaliação do VxWorks, um RTOS desenvolvido pela Wind River, e com o Intel System Studio for IoT. No Kit, estão disponíveis duas bibliotecas open source desenvolvidas pela Intel, que simplificam o desenvolvimento de aplicações e a programação do I/O das placas e imple-
Marcílio Oliveira é diretor de Operações (COO) Jomar Silva é engenheiro eletrônico especializado em Padrões Abertos e Open Source. É Community Manager de IoT do Grupo de Software da Intel no Brasil. jomar.silva@intel.com
60 > Segurança
O que você está fazendo com seus logs? Por Heitor Vital do Carmo, CTO do Site Blindado em projetos relacionados a Segurança da Informação, Cloud Computing e Infraestrutura Na maioria das vezes, a resposta para essa pergunta do título é “pouco” ou “nada”. O problema se agrava com a popularização da computação na nuvem, quando mudamos de um ambiente operacional estático para um que escala dinamicamente. Nesse novo cenário, armazenar logs localmente torna-se pouco eficaz pela complexidade para analisar diversas fontes de informações espalhadas nos diversos servidores, que muitas vezes não persistem em informações de logs após seu desligamento. Por outro lado, manter uma infraestrutura na qual todos os logs são armazenados em um local compartilhado pode se tornar uma tarefa árdua, à medida que precisamos gerenciar grandes massas de dados, reservar espaço para novos arquivos de logs e implementar políticas de ciclo de vida da informação - regras que definem quando informações devem ser movidas para sistema de backup ou simplesmente descartadas. Existem diversas iniciativas, tanto no mundo open quanto em ferramentas comerciais, que visam a auxiliar a coleta de dados e a agregação deles, a estruturação de informações a e criação de alertas para tomada de ação em caso de falhas. Esses alertas, mesmo que ocorram com baixa frequência, sempre representam oportunidades para aumentar a confiabilidade do seu sistema e também para melhorar a experiência do cliente. Exemplos dessas ferramentas não faltam: logstash, loggly, splunk, Sentry, Graylog2, Scribe, entre outras.
AWS entra no mercado
Recentemente, a Amazon Web Services (AWS) entrou nesse mercado com o lançamento de uma solução para gestão de logs dentro de seu serviço Amazon CloudWatch. As ferramentas listadas anteriormente ainda representam uma solução mais completa, pois muitas delas possuem módulos gráficos e customizáveis para análise histórica e preditiva de informações para auxílio nas tomadas de decisão. Algumas podem até ser usadas em conjunto com soluções de Big Data para uma análise mais complexa. Toda essa flexibilidade vem atrelada com uma complexidade de implantação ou custos mais elevados. É justamente nesse aspecto que o CloudWatch representa uma solução simples e acessível para gestão de ciclo de vida de informação e para criar alertas para monitorar determinado tipo de entradas. As opções existentes para envio de informações para o CloudWatch Logs são: •
Agente - Alternativa mais usada para ambientes Linux. Esta foi a opção que selecionamos para detalhar neste artigo, mas vale reforçar que ela possui os seguintes pré-requisitos:
- Python versão 2.6, 2.7, 3.0 ou 3.3 - Amazon Linux versão 2014.03.02 - Ubuntu Server versão 12.04 ou 14.04 - CentOS versão 6, 6.3, 6.4 ou 6.5 - Red Hat Enterprise Linux (RHEL) versão 6.5 ou 7.0 •
EC2Config - Opção para ambientes Windows. Mais informações: http://amzn.to/1qVKKkI
Segurança < 61
•
Command Line Interface (CLI) - Aqui o acesso é feito via interface de linha de comando e a automatização poderá ser implementada com a utilização de scripts. Mais informações: http://amzn. to/X4OhlS
•
Software Development Kit (SDK) - Alternativa indicada para quem quer ter acesso às funções do CloudWatch Logs usando sua linguagem de programação favorita. O SDK também é comumente usado na fase de extração de dados para análise. Mais informações: http://amzn.to/1qPKB3x
•
Retention Policies - São as políticas de retenção de dados de log armazenados na AWS. Essas regras são atribuídas a Log Groups e aplicam-se a todo os Log Streams deste grupo.
Instalando e configurando o CloudWatch Logs
Passo 01 - Permissões AIM
Antes de prosseguirmos ao passo a passo de instalação, precisamos deixar claros alguns conceitos que são fundamentais para compreensão e uso da solução de gestão de logs da AWS. São eles:
Para que o agente possa enviar informação para AWS, é necessário ter um usuário ou role que possua as permissões de acesso ao CloudWatch Logs. Como roles só podem ser atribuídas no momento de criação de uma nova instância e aqui estamos considerando o caso de servidor já existente, vamos na opção de criação de um usuário para utilizar suas credenciais de acesso no agente. Para isso:
•
•
Acesse o módulo Identity and Access Management (AIM) de sua conta. Link direto: https://console.aws.amazon. com/iam
•
Crie um usuário (ex: cw.logger). Lembre-se de selecionar a opção “Generate an access key for each user” para que o sistema crie as chaves de acesso para o novo usuário.
•
Copie (ou faça download) as credenciais de acesso do novo usuário.
•
Anexe a seguinte Policy ao usuário recém-criado:
•
•
•
Log Events - Evento registrado pelo aplicativo ou recurso que está sendo monitorado. Cada registro de log é composto por um timestamp (quando ocorreu o evento) e uma mensagem em si (string UTF-8). Log Streams - Conjunto de eventos de log de uma mesma origem - instância ou aplicativo que está sendo monitorado. Exemplo: log de acesso do Apache de um host específico. Log Groups - Log streams que compartilham as mesmas configurações de retenção, monitoramento e controle de acesso. Cada log stream precisa estar vinculado a um log group. Metric Filters - Forma de expressar como o serviço deve extrair informações dos eventos de log para serem usados como métricas de monitoria e alerta do CloudWatch.
{ “Version”: “2012-10-17”, “Statement”: [ { “Effect”: “Allow”, “Action”: [“logs:*”], “Resource”: [“arn:aws:logs:us-east-1:*:*”] }] }
62 > Segurança
Passo 02 - Agente Acesse a instância na qual o agente será instalado e execute os seguintes comandos: wget https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py sudo python ./awslogs-agent-setup.py --region us-east-1 Após o segundo comando, o instalador do agente irá requisitar a configuração de alguns parâmetros. São eles: •
AWS Access Key ID - Dado de acesso do usuário que criamos no passo anterior.
•
AWS Secret Access Key - Dado de acesso do usuário que criamos no passo anterior.
•
Default region name - Coloque us-east-1. Por enquanto, essa é a única região que suporta o serviço e é a mesma que configuramos no Policy do usuário. Default output format - Deixar essa opção em branco. Pressione Enter para prosseguir. Path of log file to upload - Aqui você coloca o path do arquivo de log que deseja usar no CloudWatch logs. O instalador irá sugerir um pra você (ex.: / var/log/syslog).
•
•
Destination Log Group name - O nome do log group. O instalador irá sugerir um pra você. (ex.: /var/log/syslog). Destination Log Stream - Geralmente o nome do host é usado como nome
do log stream. •
Timestamp format - Formato do timestamp dos eventos de log.
•
Initial position - Aqui você deverá optar entre subir dados retroativos (start_ of_file), ou seja, toda a informação que já existe no arquivo de log selecionado, ou subir apenas novos eventos de log (end_of_file).
Veja abaixo o output do comando de instalação do agente no nosso servidor de exemplo:
Launching interactive setup of CloudWatch Logs agent ... Step 1 of 5: Installing pip ...DONE Step 2 of 5: Downloading the latest CloudWatch Logs agent bits ... DONE Step 3 of 5: Configuring AWS CLI ... AWS Access Key ID [None]: USER_ACCESS_KEY AWS Secret Access Key [None]: USER_ SECRET_ACCESS_KEY Default region name [None]: us-east-1 Default output format [None]: Step 4 of 5: Configuring the CloudWatch Logs Agent ... Path of log file to upload [/var/log/syslog]: /var/log/syslog Destination Log Group name [/var/log/ syslog]: /var/log/syslog Choose Log Stream name: 1. Use EC2 instance id. 2. Use hostname.
Segurança < 63
3. Custom. Enter choice [1]: 1 Choose Log Event timestamp format: 1. %b %d %H:%M:%S (Dec 31 23:59:59) 2. %d/%b/%Y:%H:%M:%S (10/ Oct/2000:13:55:36) 3. %Y-%m-%d %H:%M:%S (2008-0908 11:52:54) 4. Custom Enter choice [1]: 3 Choose initial position of upload: 1. From start of file. 2. From end of file. Enter choice [1]: 1 More log files to configure? [Y]: n Step 5 of 5: Setting up agent as a daemon ...DONE Após a instalação, o agente inicia o envio das informações de logs dos arquivos selecionados e só para a execução quando explicitamente requisitado. Para ter acesso às informações, basta ir na área de logs do CloudWatch de sua conta. Para configurar o ciclo de vida da informação e alertas, basta selecionar os links das colunas Expire Events After e Metric Filters na tela de lista de logs do CloudWatch. Ao selecionar a opção para configurar o ciclo de vida, surgirá uma tela onde você poderá, por exemplo, escolher a opção 30 dias caso queira armazenar somente as informações de log do último mês. Por último, para criar alertas caso uma determinada entrada de log aconteça (ex.: exceção de aplicação, login como root, warning de espaço em disco etc.). No nosso
exemplo, colocamos para sermos alertados toda vez que o SO inserir um warning em seu log. Vale lembrar que o CloudWatch logs ainda está disponível somente para região Norte da Virginia, mas isso é somente onde os dados de logs ficam armazenados. Instâncias de qualquer região podem configurar o agente para enviar informações para uma região que suporta essa funcionalidade. Apesar de bastante novo e com as limitações que descrevemos, o ClouWatch Logs é uma alternativa simples e acessível para criar o mínimo de controle de logs consolidados em seus servidores. Além de armazenamento de dados, você pode criar alertas para controles de segurança (ex.: quando o usuário root entra no sistema ou quando IPs bloqueados tentam acessar o servidor) ou até mesmo para controle de qualidade do ambiente de produção (ex.: ser avisado caso o servidor de produção registre mais de 5 exception em menos de uma hora). A página de documentação oficial do produto (http://amzn.to/1xYdNXY) contém informações atualizadas sobre funcionalidades, limitações e regiões que suportam a solução. Lá também está detalhado como configurar o CloudWatch logs com Opsworks e Cloud Formation.
Heitor Vital possui mais de 10 anos de experiência na área de desenvolvimento de softwares, jogos e aplicativos para dispositivos móveis e web. Nos últimos anos, também vem trabalhando como CTO do Site Blindado em projetos relacionados a segurança da informação, cloud computing e infraestrutura. heitor@siteblindado.com.br | @heitorvital | hvital.blogspot.com.br/
64 > Wordpress
Projetos em WordPress e a relação dos serviços e produtos para suporte e manutenção Por Leandro Vieira, fundador e CEO da Apiki
Negócios Plataformas web surgem a todo momento com variados modelos de negócios, nichos de mercado e foco de atuação. Antecipar-se na inovação é sair na frente, mas a escolha precisa ser bem feita e fundamentada. O WordPress, uma plataforma de gestão de conteúdo, está no mercado há mais de uma década com um modelo open source bem sucedido. Conquistar mais de 23% de mercado e 60% de market share entre as plataformas concorrentes é um feito incrível. Mais incrível ainda é o ecossistema, ou para ir mais adiante, a economia WordPress. São diversos modelos de atuação e inúmeros negócios focados em seu entorno. Os variados negócios mundo afora são de desenvolvimento de sites baseados em WordPress por empresas e profissionais independentes, serviços de suporte e manutenção, consultoria técnica e de negócios para uma melhor tomada de decisão, hospedagem de sites especializada na plataforma, conteúdo e eventos direcionados, treinamentos, e a lista segue.
Mercado O tempo passou e o serviço - que começou direcionado para blog - evoluiu para um CMS e caminha para ser uma plataforma de aplicação web. Por incrível que pareça, fica cada vez mais novo, ousado e inovador, adaptando-se ao tem-
po corrente para agregar tecnologias modernas e atuais. Essa evolução beneficia todo o ecossistema, a começar pela sua conquista contínua de simpatia, respeito e admiração, e indo até o desenvolvimento de complementos para o seu núcleo, que permite a integração e a livre conversa entre outras plataformas e serviços e das empresas e profissionais que colaboram, evangelizam e a estudam sistematicamente para compartilhar e vender conhecimento.
Conquistar mais de 23% de mercado e 60% de market share entre as plataformas concorrentes é um feito incrível. Mais incrível ainda é o ecossistema, ou para ir mais adiante, a economia Empresas e profissionais cada vez se especializam mais para oferecer aos seus clientes serviços inovadores e de qualidade. O ambiente criado em torno do WordPress permite às empresas que o adotam serem livres e não terem amarras com fornecedores, o que traz s egurança, liberdade e, principalmente, respeito e dedicação ao cliente que contrata produtos e serviços especializados.
Worpress < 65
Cliente O cliente precisa ser livre, ter opção de escolha e se sentir no comando. Às empresas fornecedoras cabe o desafio de moldar seus modelos de negócios para conseguir reter sua base de clientes através da qualidade, do bom atendimento e da especialização. O desafio é grande. Com a crescente popularidade e adoção da plataforma mundialmente, a quantidade de clientes a serem conquistados tem sido exponencial, e a sua fragmentação é desafiadora, uma vez que temos de profissionais liberais a multinacionais. E o que geralmente os distinguem e os classificam são seus projetos, demandas e possibilidades de investimento.
O ambiente criado em torno do WordPress permite às empresas que o adotam serem livres e não terem amarras com fornecedores, o que traz segurança, liberdade e, principalmente, respeito e dedicação ao cliente que contrata produtos e serviços especializados
vez, seus projetos também são de diferentes tamanhos e demandas. Os investimentos a serem feitos para o desenvolvimento e a manutenção nesse cenário são diferenciados. Portanto, serviços com o conceito de On Going funcionará para uns e não para outros. São necessárias alternativas e estratégias bem fundamentadas. Projetos que precisam evoluir constantemente requerem uma solução que os suportem continuamente com inovações e implementações e, nesse caso, soluções On Going são indicadas. Evoluções esporádicas exigem outra visão e modelo. No Brasil, começamos a perceber a adoção de caminhos nesse sentido. O conceito de One Day Service tem se consolidado e oferece aos clientes uma oportunidade de contratar especialistas para atuarem em seus projetos por um único dia, focando em questões específicas e esporádicas, sem vínculo, sem contrato. A relação é rápida, direta e objetiva. Perceber o mercado se especializando e oferecendo soluções para os diversos cenários em WordPress traz ainda mais segurança para quem ainda não o adota e conforto para quem já desfruta de todo seu potencial.
Desenvolver o projeto web com WordPress desses clientes é o primeiro estágio. O que me entusiasma é que muitos clientes já projetam seus negócios com a plataforma em mente e ela passa ser exigida - seja para começar um projeto do zero ou migrar de outra plataforma.
Suporte Há clientes de diferentes tamanhos e, por sua
Leandro Vieira é uma das grandes referências de WordPress no Brasil, entusiasta e evangelista da plataforma. Fundador e CEO da Apiki, empresa especializada no desenvolvimento web com WordPress. leandro@apiki. com | @leandrovieira
Seus projetos web na nuvem, em apenas um clique. Traga seu servidor para o Jelastic Cloud Locaweb.
Copyright© 2013 Intel Corporation. Todos os direitos reservados. Intel, o logo Intel, Xeon e Xeon Inside são marcas de propriedade da Intel Corporation nos EUA e em outros países.
Hospede sites e sistemas em uma plataforma pronta para Java e PHP, com desempenho otimizado e segurança fortificada garantidos pela Tecnologia Intel ®. No Jelastic Cloud Locaweb, seu ambiente tem escalabilidade automática e não precisa de alterações no código-fonte. E o melhor, você paga o menor preço do mercado.
Apenas
R$ 0,02/hora.
Linguagens: Bancos de • MySQL • MariaDB • PostgreSQL dados: • MongoDB • CouchDB • Redis 2 • Cassandra • Neo4j • OrientDB
Experimente grátis por 14 dias e surpreenda-se. Jelastic Cloud Locaweb Tecnologia inteligente para seu projeto ir mais longe. Locaweb.com.br/Jelastic
Locaweb.com.br
Por aí < 67
Fazendo a internet do Brasil pelo mundo Que os brasileiros têm feito muita coisa, a gente sabe. Mas quem está fazendo o quê e onde, nem sempre fica bem claro. A ideia aqui é que você apareça, com a sua equipe, sua turma, seus amigos, mostrando um trabalho, a participação num hackaton, palestra etc. Tudo o que signifique “fazer a internet do Brasil” para você, cabe aqui! Quer participar? Envie uma foto e descrição para redacao@imasters.com.br
Em julho tivemos o InterCon PHP, e em setembro a edição de Android. Você pode acessar os vídeos das palestras no canal do iMasters no Youtube! https://www.youtube.com/user/imasters
A primeira edição do Front End Carioca recebeu cerca de 250 profissionais e estudantes para um ciclo de palestras completo sobre tecnologia, network e experiências novas no mundo de desenvolvimento web. O evento aconteceu na Universidade Veiga de Almeida/RJ.
68 > Por aí
Bernard de Luna, community manager do iMasters, participou da Semana da Computação - UFBA (Universidade Federal da Bahia), um evento que abrange toda a comunidade de TI e suas área do conhecimento.
Marlos Carmo e Bruno Magalhães, da RC Comunicação, foram palestrantes no Front In BH. Falando sobre “Designer e Front-End: prontos pra mudar seu workflow”, a talk foi considerada uma das melhores do evento!
O II Encontro Nacional LibreOffice aconteceu em São Paulo e reuniu uma turma bacana para discutir o tema da Comunidade do LibreOffice, de software livre e do próprio software, em nível de usuário e em nível de desenvolvedor. Eliane Domingos falou sobre “4 anos de LibreOffice, um projeto de sucesso”
Deivid Marques palestrou no Meetup CSS, um pequeno evento com o objetivo de trocar conhecimentos sobre CSS, aprender coisas novas e claro, conhecer novos profissionais e fortalecer a comunidade. Deivid falou sobre SVG animado com CSS
Por aí < 69
Também em setembro aconteceu a Conferência Web.br, que comemorou os 25 anos da Web e os 20 do W3C. A “nata da internet brasileira” estava por lá, incluindo alguns que foram fazer sucesso em outros países!
Yasodara Córdova, do W3C, e os palestrantes Marcelo Pimenta, professor da ESPM; Antonio Moreiras, Gerente de Projetos e Desenvolvimento do NIC.br; e Thiago Rondon, CEO da b-datum.com
Eduardo Shiota, brasileiro que trabalha na Booking.com como Front End Engineer, na Holanda
Parte da turma reunida
70 > Por dentro do W3C
Especificações para a Web em movimento Por Reinaldo Ferraz, Especialista em Desenvolvimento Web do W3C Brasil
A Web não para de se mover. O número de pessoas conectadas cresce a cada dia, e as barreiras físicas para a utilização da Web em qualquer lugar vão diminuindo conforme a tecnologia evolui.
gets que interagem com serviços de dispositivos, tais como calendário, contatos, câmera etc. Algumas dessas APIs são bem interessantes e seu desenvolvimento caminha para a reforçar o conceito de Web em todos os lugares.
A limitação física que era imposta por computadores pesados impedia que nos conectássemos no meio da rua, em parques ou mesmo na casa de outras pessoas. Mas isso mudou, e a generosa gama de dispositivos móveis conectados criou novas possibilidades e, com isso, novas aplicações para a Web.
Vibration API http://ow.ly/CpnUh
Quando falo em novas aplicações, quero me referir à utilização de outras características do dispositivo que vão além da resolução de tela, como sistema de vibração, status de bateria, localização geográfica, acesso à câmera e microfone do dispositivo, e por aí vai.
A especificação tem como objetivo definir uma API que fornece acesso ao mecanismo de vibração do dispositivo. A vibração é uma forma de feedback tátil e que pode ser controlada e manipulada conforme a necessidade. Em setembro de 2014, o status dessa documentação dentro do W3C era “W3C Candidate Recomendation”.
Ambient Light Events http://ow.ly/CpnWz
O Device APIs Working Group, do W3C, tem como principal objetivo criar cliente-side APIs que permitem o desenvolvimento de aplicações e Web Widgets que interagem com serviços de dispositivos
Define um meio para tratar os eventos que correspondem à detecção de luz por sensores. A documentação aborda o viés técnico e questões interessantes como a preocupação com segurança e considerações sobre privacidade. Também é uma “W3C Candidate Recomendation”.
E quem vem trabalhando nisso é o “Device APIs Working Group” do W3C (http://www. w3.org/2009/dap/), que tem como principal objetivo criar cliente-side APIs que permitem o desenvolvimento de aplicações e Web Wid-
http://ow.ly/CpnYp
HTML Media Capture O documento define uma extensão do HTML que facilita o acesso do usuário ao mecanismo de captura de mídia de um dispositivo, como
Por dentro do W3C < 71
uma câmera ou um microfone, utilizando simples formulários. Isso pode facilitar muito aquela selfie para uma aplicação de compartilhamento de fotos, por exemplo. É importante não confundir essa API com a especificação Media Capture and Streams, que possibilita uma manipulação mais complexa e refinada do acesso à câmera e microfone do usuário.
Battery Status API http://ow.ly/Cpo0s
A especificação de status da bateria define um meio para os desenvolvedores web determinarem programaticamente o estado da bateria do dispositivo que hospeda a aplicação. Sabendo o estado da bateria, os desenvolvedores são capazes de criar conteúdo web e aplicações que são eficientes em termos de energia, levando a uma melhor experiência do usuário.
Geolocation API http://ow.ly/Cpo1C
Velha conhecida dos desenvolvedores, essa documentação define uma API que fornece acesso via script para informações de localização geográfica associada ao dispositivo. A documentação sobre geolocalização é uma Recomendação do W3C desde outubro de 2013. Esse documento é o único da lista que não foi
criado pelo Device APIs Working Group, e sim pelo W3C Geolocation Working Group. Existem outros grupos e iniciativas que também trabalham com a questão da Web em movimento, para os mais diversos dispositivos e cenários de utilização. Considerar o acesso à Web em todos os lugares é fundamental e uma premissa importante para sua evolução. Vale a pena conhecer o trabalho desses e de outros grupos na página do W3C http://www. w3.org/Consortium/activities
Reinaldo Ferraz é especialista em desenvolvimento web do W3C Brasil. Formado em Desenho e Computação Gráfica e pós graduado em Design de Hipermídia pela Universidade Anhembi Morumbi, em São Paulo. Trabalha há mais de 12 anos com desenvolvimento web. Coordenador do Prêmio Nacional de Acessibilidade na Web e do Grupo de Trabalho em Acessibilidade na Web e representante do W3C Brasil em plenárias técnicas do W3C. @reinaldoferraz
72 > iMasters Box
iMasters Box Seleção: Flávia Jobstraibizer fjobs@linuxmagazine.com.br - envie suas sugestões de ferramentas!
Lembra aquela vez que você precisou de uma boa ferramenta para ajudar no seu trabalho e não conseguiu nenhuma indicação? Da próxima vez, procure no iMasters Box, um agregador de serviços voltado para desenvolvedores web que reúne ferramentas específicas para esse profissional. Aqui na Revista iMasters trazemos sempre alguns dos destaques do Box. E você pode participar! Indique a sua ferramenta favorita em http://bit.ly/indiqueumaferramenta e torne-se um colaborador do Portal iMasters!
Alpha Fire
AppCooker
Ferramenta focada em montar aplicações comerciais em AJAX para Web e dispositivos móveis. É possível incluir gráficos, tabelas e estatísticas em aplicações, permitindo que os usuários analisem tendências. Alpha Fire oferece classes e bibliotecas de JavaScript, além de suporte para jQuery. O JavaScript é gerado para o desenvolvedor, permitindo seu uso por aqueles que não têm tanta habilidade para escrever código. Alpha Fire é o primeiro produto completo para construir e implementar rapidamente aplicações empresariais HTML5 para dispositivos móveis e computadores pessoais.
Permite a criação de interfaces, desenvolvimento de recursos visuais, desenho de interface de usuários, usabilidade etc. para dispositivos iOS. A ferramenta é muito intuitiva e permite a criação de todas as telas de um aplicativo real, contendo ainda suas transições e comportamentos, sem programação envolvida. Com poucos cliques, é possível criar um aplicativo completo, com diversas telas, transições e comportamentos, do ponto de vista de interface. Grande vantagem para quem possui uma equipe de desenvolvimento dedicada a criar código para interfaces já existentes.
Acesse: http://ow.ly/CaJZy
Acesse http://ow.ly/CaKfC
iMasters Box < 73
ChromeVox
WebIDE para Raspberry Pi
É uma ferramenta para análise e testes de acessibilidade, que tem como principal ideal ajudar o desenvolvedor de aplicações web a verificar e corrigir problemas de compatibilidade com softwares leitores de tela. O leitor de tela ChromeVox é uma extensão para o Chrome que traz a velocidade, a versatilidade e a segurança do Chrome para usuários com deficiência visual. Ao contrário dos demais softwares de acessibilidade, é construído utilizando apenas tecnologias web, como HTML5, CSS e JavaScript. ChromeVox ainda está em desenvolvimento e atualmente não funciona em conjunto com leitores de tela do desktop.
Ainda em fase beta, a WebIDE é a maneira mais fácil de criar e executar códigos em dispositivos Raspberry Pi (e também funciona com Beaglebone). Basta conectar o Raspberry Pi à rede local e fazer login no WebIDE pelo navegador web para criar e editar scripts Python, Ruby, JavaScript, ou qualquer outro, e facilmente enviar para testes diretamente no dispositivo Pi. A WebIDE inclui um terminal para que seja possível enviar múltiplos comandos para o dispositivo a partir do navegador. Além disso, o código fonte criado será versionado em um repositório Git local e enviado remotamente para o Bitbucket para que seja possível acessá-lo de qualquer lugar, e a qualquer hora
Acesse http://ow.ly/CaKj4
Acesse: http://ow.ly/vsU29
ChromeVox
Esta é uma API para GeoIP, um serviço de localização de IP. Passe o método para localizar um endereço IP, e ele retorna as informações de localização, incluindo latitude, longitude, cidade e país. O formato de resposta é em JSON (por padrão) ou XML. Esta API está atualmente em “alpha” e não possui várias funcionalidades. Acesse http://ow.ly/CaKj4