Backbone.js-Post-Image-1

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.

Continue lendo

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.

Continue lendo

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.
Continue lendo

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.
Continue lendo

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.

Zend_Paginator_Adapter para Doctrine 2

O componente Zend_Paginator simplifica bastante a paginação de dados e fornece Adapters para suportar várias fontes de dados (objetos Zend_Db, arrays puras, etc). O FernandoMantoan_Paginator_Adapter_Doctrine foi criado para ser um Zend_Paginator_Adapter que fornece paginação para os objetos QueryBuilder do Doctrine 2.

Configuração

O primeiro passo é baixar o componente para o seu projeto:

git clone https://github.com/fernandomantoan/zf1-doctrine2-paginator-adapter

Basta copiar a pasta library/FernandoMantoan para a pasta library do seu projeto Zend Framework, e adicionar no application/configs/application.ini as seguintes linhas:

autoloaderNamespaces[] = FernandoMantoan

Uso

O Adapater necessita de um objeto QueryBuilder, para construir as consultas para contagem das páginas e paginação. O exemplo a seguir cria um QueryBuilder:

$queryBuilder = $entityManager->createQueryBuilder();
$queryBuilder->select('c')
             ->from('Entity\Contacts')
             ->orderBy('c.birthdate');

Tendo o objeto QueryBuilder criado, basta instanciar o Adapter e o Zend_Paginator:

$adapter = new FernandoMantoan_Paginator_Adapter_Doctrine($queryBuilder);
$paginator = new Zend_Paginator($adapter);
$paginator->setCurrentPageNumber($currentPage)
          ->setItemCountPerPage(10);

Próximos Passos

O componente é bem simples e direto, foi criado para a utilização em um projeto e para suprir as necessidades do mesmo. Quem tiver interesse em contribuir, sugerir funcionalidades ou reportar bugs, basta acessar no GitHub, toda contribuição é bem-vinda.