Novo blog

Olá, após muito tempo com este blog parado gostaria de anunciar que começarei a escrever em um novo endereço: http://blog.fernandomantoan.com. Resolvi recomeçar utilizando um CMS totalmente focado em blogs e extremamente mais simples (e até com menos recursos) do que o WordPress, esse CMS é o http://ghost.org.

Em breve migrarei os principais artigos para o novo blog e continuarei os posts da Série BackboneJS assim como novos artigos sobre AngularJS, Zend Framework 2, Laravel, OAuth2, Rails e Android, assim como adicionarei os devidos redirecionamentos da URL atual.

Nos vemos por lá!

Série Backbone.js: Parte 5 – Router, Histórico, Backbone.sync, Eventos e mais

O Backbone.js é um framework Javascript que fornece componentes para melhorar a estrutura de aplicações web. Dentre os componentes encontram-se o Router e o History, responsáveis pela criação de rotas e gestão do histórico do browser via Javascript. Além destes componentes, existe a função Backbone.sync que é a função utilizada para realizar toda a sincronização com o servidor, através dos métodos de cada componente (apresentados nos artigos anteriores), a API de eventos utilizada para gestão e disparo de eventos, tanto customizados, quanto os eventos definidos no framework. Existem também alguns métodos utilitários, que auxiliam na resolução de pequenos detalhes como, por exemplo, integração com outros frameworks.

Continuar lendo Série Backbone.js: Parte 5 – Router, Histórico, Backbone.sync, Eventos e mais

Ubuntu 13.04 corrigindo bug de integração do pacote unity-webapps-gmail

Após formatar meu computador e fazer uma instalação limpa do Ubuntu 13.04, comecei a instalar alguns pacotes de webapps para integrar diversas aplicações web com meu desktop Unity. Um problema que encontrei, foi que a integração com o GMail, via unity-webapps-gmail, não exibia no menu de mensagens o ícone “GMail”, assim como a contagem de posts não-lidos no ícone do Unity.

Continuar lendo Ubuntu 13.04 corrigindo bug de integração do pacote unity-webapps-gmail

Série Backbone.js: Parte 4 – Collection

Backbone.js

O Backbone.js é um framework Javascript que fornece componentes para melhorar a estrutura de aplicações web. Dentre os componentes, encontra-se a Collection, que representa um conjunto ordenado de Models e traz diversos métodos úteis para trabalhar com coleções de dados.
Continuar lendo Série Backbone.js: Parte 4 – Collection

Aplicação Android para a Latinoware 2012

Latinoware 2012

A Conferência Latino-Americana de Software Livre – Latinoware 2012 ocorrerá nos dias 17, 18 e 19 de Outubro, aqui em Foz do Iguaçu. Promovida pela Itaipu Binacional, Fundação Parque Tecnológico Itaipu – Brasil, Companhia de Informática do Paraná (Celepar) e Serviço Federal de Processamento de Dados (Serpro), a Latinoware é um evento que abre espaço para discussões e reflexões sobre a utilização do Software Livre na América Latina, além de promover a integração e a valorização latino-americana.

Esse ano, eu e meu amigo Anderson Rodrigo Davi, tivemos a curiosidade de pesquisar sobre uma aplicação Android contendo a grade do evento, o que facilitaria bastante para consultar as palestras do dia. Vimos que desde sua primeira edição, o evento nunca ganhou a devida atenção nestes dispositivos. Entrei em contato com o pessoal da organização e eles autorizaram a criação de uma aplicação simples para apresentar a grade de palestras dos três dias.

Só que, o que adiantava a gente construir uma aplicação fechada, sendo que é uma conferência de software livre? A idéia então foi a de construir a aplicação e além disso disponibilizar seu código-fonte, para que desenvolvedores que tenham interesse possam contribuir para chegar a uma aplicação com mais recursos, ou até que desenvolvedores mais experientes tenham o interesse em investir em uma aplicação semelhante.

Bom demos o pontapé inicial, você pode baixar a aplicação na Play Store. Se tiver interesse em contribuir com a aplicação, acesse o repositório no GitHub. Toda contribuição é bem-vinda, se quiser relatar algum bug, sugerir funcionalidade, contribuir com novas funcionalidades, traduzir para outros idiomas, etc. Temos alguns planos em mente como:

  • Construir uma base de dados localmente no aparelho, evitando consultar o backend;
  • Implementar o recurso de marcar palestras que serão assistidas;
  • Corrigir os bugs apresentados na versão atual;
  • Incluir demais funcionalidades implementadas pela comunidade.

Nos vemos na Latinoware 2012!

Zend Framework 2.0.0 Lançado

A comunidade Zend Framework anunciou oficialmente (http://framework.zend.com/blog/zend-framework-2-0-0-stable-released.html) o tão aguardado lançamento da versão estável do Zend Framework 2. Foram anos de trabalho no desenvolvimento desta nova versão que tinha como objetivo melhorar significantemente toda a sua estrutura, boas práticas, integração com outros frameworks,  padrões de projetos e etc.

Alguns novos componentes foram adicionados como o ModuleManager, ServiceManager, Zend\Di, EventManager, assim como modificações nos demais componentes como Zend_Locale e Zend_Translate que foram unificados no componente Zend\I18n, Zend\Mvc, e muitas outras modificações.

O principal ponto a se destacar nessa nova versão é a versão do PHP mínima necessária para o correto funcionamento do framework que, na versão 1.10+ era 5.2.4 e agora é 5.3+.

Em breve os artigos que escrevi para o Zend Framework 1.11+ serão atualizados para a nova versão do Zend Framework, mantendo é claro as versões anteriores.

Para fazer o download do Zend Framework 2.0.0 acesse o seguinte link: http://framework.zend.com/downloads/latest.

Série Backbone.js: Parte 3 – Model

Backbone.js

O Backbone.js é um framework Javascript que fornece componentes para melhorar a estrutura de aplicações web. Dentre os componentes, encontra-se o Model, responsável por representar os dados de uma aplicação, conter regras de negócio, incluindo validações, conversões, controle de acessos, e definir os aspectos de persistência.
Continuar lendo Série Backbone.js: Parte 3 – Model

Série Backbone.js: Parte 2 – View

Backbone.js

O Backbone.js é um framework Javascript que fornece componentes para melhorar a estrutura de aplicações web. Dentre os componentes, encontra-se a View, responsável pela apresentação de dados em uma aplicação MVC. Neste segundo artigo da série de seis artigos sobre Backbone.js, será apresentada a classe Backbone.View, com exemplos práticos, utilização de templates, e integração com jQuery.
Continuar lendo Série Backbone.js: Parte 2 – View

Vagrant e atualização dos pacotes da VM Ubuntu 12.04

Há muito tempo eu estava curioso para testar o Vagrant que, para quem não conhece, é uma ferramenta para auxiliar na gestão de configuração através de virtualização, utilizando como base o Oracle VirtualBox. Após ler o post do Elton Minetto, decidi botar a mão na massa e criar uma VM para meu ambiente de desenvolvimento Java e PHP. Comecei instalando a VM com a última versão LTS do Ubuntu:

vagrant box add precise32 http://files.vagrantup.com/precise32.box

Depois disso iniciei um projeto Vagrant com o comando:

vagrant init precise32

E iniciei a máquina virtual com:

vagrant up

Acessar a máquina criada por SSH é bem prático:

vagrant ssh

Estando na máquina, resolvi atualizar os pacotes com os comandos:

sudo apt-get update
sudo apt-get dist-upgrade

Desliguei a máquina virtual com o comando:

vagrant halt

E liguei novamente com o comando:

vagrant up

Depois dessa atualização, o kernel da máquina virtual foi atualizado, e o resultado do comando vagrant up veio acompanhado de um erro:

The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` v-root /vagrant

O problema ocorre porque ao atualizar o kernel, o pacote de Guest Additions precisa ser recompilado com os headers do kernel atual. Para solucionar o problema, foi necessário instalar os headers para o kernel atual:

sudo apt-get install build-essential linux-headers-`uname -r`

E re-adicionar o pacote Guest Additions:

sudo /etc/init.d/vboxadd setup

Ao reiniciar a máquina virtual, o erro desapareceu. Mais informações: Issue #733 no GitHub.