quarta-feira, 15 de julho de 2015

Opengates

Estou iniciando um projeto que envolve dados abertos. Trata-se do Opengates. Opengates é uma plataforma alternativa ao CKAN, com características bem similares, porém feito em Perl(CKAN é feito em Python), usando Catalyst como backend e AngularJS como front.

O que esse treco vai fazer? Basicamente tudo o que o CKAN faz, mas sem as inconveniências do virtualenv do Python, e menos sofisticado, no sentido de que inicialmente não haverão muitos facilitadores, digamos assim. Lista de features para as versões 1.0.x

  • Permitir acesso a dados abertos organizados por instituições, empresas, grupos ou simples usuários
  • Restrição de acesso(somente na escrita) através de roles
  • Customização de conteúdo. Na verdade, o que importa mesmo é a API. Embora eu pretenda fornecer uma interface inicial e customizável, a idéia é que as pessoas possam consumir os dados através da API e sejam livres para mostrar isso da maneira que lhes convier melhor.
  • Documentação versionada
  • Visualização de dados online(CSV, TXT)

Tudo ainda está precário, porque comecei somente a alguns dias. Mas espero ter algo funcionando em breve! Pretendo continuar postando sobre as evoluções.

Bom, por enquanto é isso! Idéias serão bem-vindas!

Github - https://github.com/bang/Opengates

Cheers!

quinta-feira, 2 de julho de 2015

Vagrant para idiotas

Resolvi fazer um artigo para pessoas como eu, ou seja, para idiotas e preguiçosos não precisem ficar inferindo e 'caçando' coisas na internet sobre como lidar com o Vagrant.

Em primeiro lugar, uma breve introdução. O que é Vagrant? Vagrant é um toolkit que ajuda a gerenciar ambientes virtualizados. Por padrão, ele usa como backend, ou, como está na documentação do próprio Vagrant, como PROVIDER, o Virtualbox. Mais detalhes em https://www.vagrantup.com/

É eu sei! Virtualbox não é 'lá essas coisas', mas como material introdutório, acho que tá bom demais!

O que vamos precisar?

  • Linux - Eu uso Ubuntu. Se você não usa, mas usa Debian, ou seus 'filhotes' creio que tudo bem(embora não tenha testado o que está escrito mais pra baixo fora do Ubuntu)!
  • Vagrant - Me refiro ao pacote .deb disponível no repositório do Ubuntu(espero não ter que me explicar de novo), chamado(quem diria?!), vagrant
  • Virtualbox - Dois pacotes .deb: virtualbox e virtualbox-dkms

Só isso? Em teoria, SIM!

Baixando uma box inicial

Lista de boxes disponíveis no site do Vagrant: http://www.vagrantbox.es/

Já nessa página, tem três comandos que fazem o que tem que ser feito para você iniciar e acessar a VM através do Vagrant. Esqueça isso por enquanto! Você precisa configurar seu Vagrantfile.

De qualquer forma, use o wget ou qualquer outra coisa para fazer o download.

Criando o Vagrantfile

Estou supondo que você está em seu laptop com wifi. Se for isso, faça o seguinte:

Depois de fazer o download do seu box, faça

vagrant box add "NOME_DO_BOX" ARQUIVO_BOX.box

$vagrant box list

Se tudo deu certo, você deve ver o nome do box que você adicionou a lista do vagrant

$ vim Vagrantfile
Sim, eu permito que você use algo diferente do vim :P

Adicione essa linha:

$ config.vm.box = "NOME_DO_SEU_BOX_SEM_ESPACO"

Adicione essa linha(Deu certo pra mim via wi-fi)

$ config.vm.network :public_network 

Salve o arquivo

Finalmente! Subindo a VM com o Vagrant

Para inicializar o box faça:

$ vagrant init "NOME_DO_BOX"

$ vagrant up

Nesse momento, você terá que escolher a interface de rede que o Vagrant utilizará.

Se tudo deu certo, você está pronto para acessar a sua vm. Para isso faça:

$ vagrant ssh

Pronto! Você já aprendeu a usar vms do virtualbox com o Vagrant. A sugestão é que você versione suas 'boxes' e arrume algum serviço de storage + git para disponibilizar isso em qualquer lugar que tenha link de Internet disponível

Fui!