DevSecOps

4 abr, 2014

Coder: seu mini-servidor web pessoal

Publicidade

Já tive a oportunidade de falar um pouco sobre o Raspberry Pi na edição passada da revista iMasters (Alfabetização Digital, revista iMasters #8, pg. 32). Esse pequeno computador de US$35 conquistou o coração de muitos geeks pela sua flexibilidade e baixo custo, características que permitem utilizá-lo para os mais diversos fins, sem dispender muita energia e com um custo diversas vezes inferior ao que um computador “comum” teria.

A versatilidade parece ser tanta que até mesmo a equipe do Google Creative Labs vislumbrou a possibilidade de criar um projeto para o simpático computadorzinho: como o próprio nome já diz, o Coder pretende ser uma plataforma pessoal de desenvolvimento, de forma a ensinar e facilitar o acesso de qualquer pessoa ao universo da programação web. É claro que, considerando-se a natureza do hardware, seria de se pensar que se trata de algo voltado para os mais jovens; mas, na verdade, até mesmo aqueles que já estão habituados ao desenvolvimento podem tirar proveito das vantagens e do baixo custo da plataforma.

CoderEdit -eyeball - Chromium_006
1. CoderEdit::eyeball – Chromium_006.png – ao clicar no ícone do olho, você pode visualizar as alterações em seu projeto em tempo real.

O primeiro passo para se ter acesso ao Coder é baixar a imagem na página do projeto no Github. Em seguida, é preciso descompactar o arquivo zip baixado e gravar o .img resultante em um cartão SD, conforme as instruções padrão da documentação do Raspberry Pi. A partir daí, você já tem o seu ambiente de desenvolvimento praticamente pronto: basta iniciar o boot com o cartão SD gravado e efetuar algumas poucas configurações.

O primeiro acesso é sutilmente diferente caso seu Raspberry Pi esteja ligado à rede doméstica via cabo Ethernet ou Wi-Fi. O primeiro caso é mais simples: basta digitar http://coder.local no navegador de qualquer computador ligado na mesma rede para que você já tenha acesso à tela inicial do Coder. Caso seu Raspberry Pi não faça uso de cabo de rede, será necessário acessar a rede CoderConfig que o dispositivo disponibiliza via Wi-Fi. Em ambos os casos, é necessário ignorar o aviso de segurança do navegador em relação ao certificado.

Logo no primeiro acesso, o Coder forçará a escolha de uma senha para proteger o sistema de qualquer acesso não autorizado. Uma vez nas configurações, também é possível selecionar a rede Wi-Fi da sua casa e fornecer a devida senha, para que ele possa, a partir de então, fazer parte da sua rede local e permitir seu acesso não somente ao dispositivo, mas também à web simultaneamente.

Pronto. Basicamente, isso é tudo que você precisa fazer! A grande vantagem do Coder é esta: ele abstrai boa parte da necessidade de se configurar um servidor web e instalar diferentes programas, liberando o caminho para que se vá direto àquilo que interessa, sem muita enrolação. É claro que sempre haverá aqueles que preferem fazer as coisas da forma mais difícil (e aprender com isso durante o processo), mas o fato de a distribuição tirar da frente do usuário boa parte da dificuldade existente inicialmente em se criar uma plataforma de desenvolvimento pode significar mais gente atraída pela programação propriamente dita, relegando questões de administração de sistemas a um aprendizado futuro, em um segundo momento.

2.Coder – Chromium_002.png – Tela principal do Coder: cada quadrado é um aplicativo e basta clicar no “+” para criar um novo projeto.
2. Coder – Chromium_002.png – Tela principal do Coder: cada quadrado é um aplicativo e basta clicar no “+” para criar um novo projeto.

Se quiser, você pode tentar, inclusive, instalar o Coder em seu próprio computador, sem a necessidade de possuir um Raspberry Pi, para conhecer melhor a proposta. Veja aqui.

A interface do sistema segue o padrão Google: colorida, minimalista, intuitiva e clean. Cada um dos quadrados representa um projeto; ao clicar em um deles, visualiza-se o código fonte pertencente ao projeto, podendo alternar entre os códigos HTML, CSS, JavasScript ou Node.js a partir do menu superior. Os três projetos que acompanham o sistema possuem nível crescente de dificuldade, cujos códigos encontram-se muito bem comentados, com explicações sobre seu funcionamento e sugestões de mudanças e experimentação.

Ao clicar no ícone do olho, a tela é dividida em duas, de forma que qualquer modificação no código passa a ser instantaneamente visualizada. O ícone da pasta, por sua vez, permite enviar imagens e arquivos de mídia que serão utilizados em seus projetos. Qualquer aplicativo criado pode ser baixado na forma de um arquivo zip, permitindo o compartilhamento de seus códigos com amigos ou demais interessados de maneira simples. Da mesma forma, pode-se fazer o processo inverso e criar um projeto a partir de um arquivo zip enviado para você.

Mas nem tudo é perfeito: seria interessante poder contar com suporte para múltiplos usuários, para que mais de uma pessoa em uma mesma família pudesse utilizar o sistema. Também não foi possível obter um acesso à linha de comando para customizar a plataforma, instalando bibliotecas através do npm, por exemplo. Uma inspeção com o Nmap revelou que a porta 22 encontrava-se aberta, mas não pude localizar o usuário e a senha padrão em lugar nenhum. Fica a dica para algum leitor nos avisar, caso descubra. Outro recurso interessante seria poder contar com a integração junto a algum sistema de controle de versão, como o Git.

3.Coder – Chromium_001.png - Uma senha definida no primeiro acesso impede o acesso indevido ao sistema.
3. Coder – Chromium_001.png – Uma senha definida no primeiro acesso impede o acesso indevido ao sistema.

Se você também sentiu falta disso tudo, deve dar uma olhada num projeto bem semelhante, o webIDE da Adafruit. Ele possui todos os recursos acima e traz ainda a vantagem de poder criar aplicativos em Python, Ruby e outras linguagens, além de rodar também no Beaglebone. Não cheguei a testá-lo, mas ele parece mais voltado para usuários intermediários e avançados, oferecendo mais opções de customização, enquanto que o Coder foca no iniciante, para o qual geralmente menos opções significam mais acessibilidade.

4.Space Game! - Chromium_005.png - É possível inclusive criar aplicativos interativos como jogos, por exemplo e testá-los na plataforma.
4. Space Game! – Chromium_005.png – É possível inclusive criar aplicativos interativos como jogos, por exemplo e testá-los na plataforma.

Não deixe de conferir também o [Coder Projects] , site criado pela equipe do Coder com intuito educacional, no qual você pode baixar e enviar projetos criados com o Coder, de maneira a aprender mais ou compartilhar algum conhecimento extra.

***

***

Artigo originalmente publicado na Revista iMasters: http://issuu.com/imasters/docs/revista_imasters_09