Tribo do C.I.

Só mais um blog de informática (só que não)

Realidade Virtual com o A-FRAME

novembro 17th, 2016

Realidade virtual está se tornando a sensação do momento! Vários dispositivos VR estão sendo vendidos e cada smartphone moderno pode rodar coisas de VR. Você provavelmente já viu algum vídeo gravado com a Samsung gear 360, por exemplo. Isso está disponível no YouTube (e em alguns vídeos/fotos do Facebook) e você pode experimentá-lo com qualquer dispositivo ‘smart’ e em seu navegador de computador, arrastando e soltando a posição do vídeo com o mouse.

Mas a melhor coisa para nós geeks é quando somos capazes de realmente fuçar a coisa, mexer e construir do nosso próprio jeito. Quando se trata de Realidade Virtual, a maneira mais legal de fazer isso é usando esse incrível framework chamado A-Frame.

A-Frame é uma estrutura open-source WebVR para criar experiências de realidade virtual (VR) com HTML. Podemos construir cenas de VR que funcionam em smartphones, desktop, o Oculus Rift e o HTC Vive.”

A-Frame não é tão novidade, ele está disponível há algum tempo e já tem vários vídeos, artigos e componentes disponíveis para você não apenas começar, mas realmente se envolver e desenvolver coisas incríveis. Estou escrevendo este artigo para compartilhar minha experiência como iniciante com A-Frame, mas antes começarmos, se você já está interessado, você vai querer dar uma olhada na comunidade Slack do A-Frame e no grupo do A-Frame no Telegram. Lá compartilhamos nossas experiências, dúvidas e ajudamos um ao outro. Cuidado pois todas as conversas são em inglês.

WebVR e A-Frame foram construídos pela equipe de VR da Mozilla para tornar mais rápida e fácil a criação de conteúdo 3D/VR e facilitar a introdução da Comunidade da Web no mundo VR. E é realmente fácil começar com A-Frame, você só precisa primeiro adicionar a Biblioteca em seu projeto:

$ npm install aframe

or, use the direct link
https://aframe.io/releases/0.3.2/aframe.min.js

Depois de adicionada a biblioteca no seu projeto, você pode começar a escrever alguns componentes facilmente:

<a-scene>
  <a-box color="#AAA" width="2" height="2" depth="5"></a-box>
</a-scene>

Com este pedaço de código, você criou uma cena com uma caixa cinza nela. Se você estiver rodando no seu Navegador Desktop, você pode usar as teclas W A S D para se deslocar na cena e ver a caixa de perspectivas diferentes. Dentro desta cena, você pode criar qualquer componente que você quer, por exemplo, você pode duplicar esta caixa.

<a-scene>
  <a-box color="#AAA" width="2" height="2" depth="5"></a-box>
  <a-box color="#16a085" width="2" height="2" depth="5"></a-box>
</a-scene>

Observe agora que, executando este código acima, você está vendo apenas a caixa verde. Isso aconteceu porque as caixas estão colocadas na mesma posição na cena. Como estamos em um mundo 3D, as coisas têm valores X Y e Z para definir a sua posição. A cena começa na posição = “0 0 0” e esta também é a posição padrão para os componentes que criamos. Então, agora vamos ver todo o exemplo HTML com posições diferentes para as caixas.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>My Hello World - A-FRAME</title>
</head>
<body>
  <a-scene>
    <a-sky color="#34495e"></a-sky>
    <a-box position="-4 0 -8" color="#AAA" width="2" height="2" depth="5"></a-box>
    <a-box position="4 0 -8" color="#16a085" width="2" height="2" depth="5"></a-box>
  </a-scene>
</body>
<script src="https://aframe.io/releases/0.3.2/aframe.min.js"></script>
</html>

Neste exemplo também adicionei outro elemento (a-sky) que funciona basicamente como o fundo da cena. Você pode facilmente colocar uma imagem ao invés de uma cor.

<a-sky src="image.jpg"></a-sky>

Uma imagem pode ser usada em qualquer componente. Em relação aos valores de posição, devemos entender que o eixo X se estende negativamente para a esquerda e positivamente para a direita, o eixo Y se estende positivamente para cima e negativamente para baixo, e o eixo Z se estende negativamente para fora da tela e positivamente para dentro da tela. Eu mudei este exemplo e coloquei uma caixa em cada posição da tela (frente, traz, esquerda e direita) para que você possa vê-lo em execução e brincar com esse exemplo. Você pode verificar meu exemplo no Codepen ou baixar meu repositório sobre VR no Github.

Eu não sei por que, mas eu simplesmente não consigo rodar os exemplos do codepen corretamente no meu smartphone, então eu deixei este exemplo disponível na página Github do meu repositório ‘HeyVR’. Este repositório é apenas um conjunto de exemplos usando A-Frame. Eu também adicionei nesta página um componente a-light para representar o sol na imagem que eu coloquei no a-sky.

Eu não quero fazer esta introdução muito grande, eu acho que isso é suficiente para despertar o interesse sobre esta grande ferramenta e começar a construir uma Web VR. Se você quiser continua, eu aconselho você a ir para um guia A-Frame com HTML, que é bastante interessante e você será capaz de fazer muito mais coisas como posição, rotação e escala.

Curtiu?! Então entre na comunidade Slack do A-Frame e no grupo do A-Frame no Telegram. Envolva-se e divirta-se na Web VR.

A comunidade Mozilla Brasil estará na FGSL para falar sobre A-Frame em 18 e 19 de novembro. Para ser exato, este tópico será apresentado em 19 de novembro na sala 3 às 15h. Você deve ir =) será incrível. Vamos compartilhar tudo usando a hashtag #MozillaNoFGSL

Contribuindo com a Mozilla

novembro 17th, 2016
Mozilla 2013 Summit

Mozilla Summit – Foto por Marcia Knous, disponível no blog da Mozilla

Quando eu descobri que eu era capaz de contribuir com os projetos da Mozilla isso me fez sentir muito feliz e útil. Não consigo me lembrar dos detalhes, mas eu estava aprendendo sobre HTML5 e Web Mobile usando o MDN como meu recurso principal e percebi que algumas páginas estavam em português e outras não. Descobri então que qualquer um poderia traduzir as páginas, então comecei a traduzir também, pois queria melhorar meu inglês e também fazer estes conteúdos disponíveis às pessoas que não sabem inglês.

Isso foi em 2014, eu aprendi algumas coisas sobre a Web e também melhorei um pouco o meu Inglês traduzindo artigos no MDN. Logo consegui desenvolver WebApps e publicá-los no Marketplace do Firefox, na Chrome Web Store e também aprendi a usar o PhoneGap para tornar os meus aplicativos da web instaláveis em dispositivos Android. Eu ganhei um monte de novas habilidades apenas me envolvendo mais na tradução desses artigos no MDN e assim estudando mais, e eu tenho certeza que muitas pessoas foram capazes de aprender mais a partir de então, com esses artigos também disponíveis em português. Uma mão lava a outra.

Como eu estou acostumado a dar palestras, eu preparei algum conteúdo sobre essas coisas novas que eu aprendi, e ministrei palestras e mini cursos em alguns eventos em minha cidade e outras cidades próximas. No final de todas essas palestras, eu mencionava o MDN e tudo o que aconteceu comigo, encorajando os participantes a contribuir com os artigos também. Mais tarde eu descobri que a comunidade Mozilla era grande aqui no Brasil, e eles fazem muitas atividades. Na verdade, eu aprendi que a Mozilla tem listas de atividades e como executá-las, tornando a vida do contribuinte muito mais fácil.

No começo eu estava muito ocupado, terminando minha graduação, mudando de posição no trabalho, e esses tipos de coisas que nos amarram à nossa rotina, então eu não envolvi com a comunidade. Mas as coisas mudaram um pouco em 2016, quando encontrei alguns amigos da Mozilla Brasil morando perto de mim, e dispostos a unir forças para realizar as atividades da Mozilla aqui no Centro Oeste do Brasil (Goiás e Brasília). Foi algo incrível, eles me motivaram. Logo nós nos reunimos para fazer um plano de ação e começar a incentivar mais pessoas a contribuir com a Mozilla.

 

 

Em setembro de 2016, palestrei em três cidades diferentes (Brasília, Ceres e Uruaçu) falando sobre os projetos da Mozilla em geral, e em uma ou duas dessas conferências falei também sobre a Mozilla e a IoT, tambem conhecido como Connected Devices. As pessoas ficaram maravilhadas porque pensavam que a Mozilla era uma coisa distante, mas agora viram que estamos em toda parte, e também aqui, ao lado deles. Eu não sei se algum dos ouvintes já começou a contribuir com a Mozilla, mas eu sei que eu plantei alguma chama em seus corações.

Eu estou disponibilizando todos os slides das minhas palestras na minha conta do github, então você pode apenas verificar o meu repositório Talks e ver o que que tem de bom por lá. Mas quero destacar os slides usados nas palestras de setembro:

 

Agora estamos planejando uma grande atividade no Fórum Goiano de Software Livre – FGSL. Estaremos falando sobre Realidade Virtual, Compatibilidade com a Web, Privacidade e Segurança, e também sobre como contribuir com o Mozilla. Eu ficaria mais do que feliz se você desse uma olhada na nossa agenda na conferência. Tudo será informado em http://fgsl.net.

Isso é só um começo. Eu sei que estaremos fazendo grandes coisas de agora em diante, e eu quero que você participe também. Veja meu exemplo, você só tem a ganhar, e além disso, também estará ajudando os outros a serem beneficiados também.

 

Dica rápida: campo de senha

janeiro 15th, 2016

É muito legal e causa muita confusão aos leigos (bem leigos) preencher o campo de senha em um formulário. Eu já fui professor de idosos e eles sempre ficavam intrigados por digitarem e, na verdade, só aparecer bolinhas na tela. Com a popularização dos smartphones essa prática deve ser repensada.

Não significa que o campo de senha tem que ser abolido, pois ele impede que quem quer que esteja ao seu lado saiba sua senha. No smartphone o campo de senha não é prático por dois motivos básicos:

  • O usuário quase sempre erra o que digita no celular, e não tem como ele checar sua senha.
  • Não é tão seguro assim para o curioso ao seu lado, pois ao pressionar o teclado, a letra aparece na tela por uma fração de segundo antes de virar uma bolinha.

A solução mais simples e mais usada para isso é deixar o campo de senha como está, e incluir uma opção de mostrar a senha. Assim o usuário pode digitar a senha mais à vontade e depois dar uma conferida se digitou corretamente. Essa prática se tornou tão comum que a microsoft a adotou como padrão em todo campo de senha do Windows 8.

Em 2016 eu iniciei uma idéia maluca de criar o projeto #366DailyCode, que consiste em publicar 1 pedaço de código JavaScript por dia (geralmente um problema ou algoritmo conhecido). Isso é assunto para outro post, o fato é que eu tornei essa opção de mostrar a senha o código do dia 14/01/2016. Você pode checá-la em prática abaixo:

See the Pen #366DailyCode #Day14?—?Input type password by Sheldon Led (@sheldonled) on CodePen.

Tribo do C.I.

Tribo do C.I.

Só mais um blog de informática (só que não)