Páginas

17 de abr de 2012

Baixando e instalando o NodeJS



Afim de ajudar uma galera que está começando com NodeJS, vou demonstrar rapidamente o que é, e como funciona o NodeJS e como instalá-lo corretamente em SOs derivados do Debian (Ubuntu, Mint …)

O que é NodeJS?

NodeJS é uma nova e fascinante plataforma desenvolvida por Ryan Dahl, permitindo que desenvolvedores JavaScript possam criar servidores de alto desempenho , aproveitando a V8 engine do Google Chrome como interpretador JavaScript, e chamadas assíncronas de I/O.

Como funciona?

NodeJS tem seu funcionamento bastante diferente das principais tecnologias web. Nessas tecnologias existe sempre a abertura de threads ou processos como no caso do java que apenas 1 processo abre várias threads. Todo esse processo de abertura de threads torna uma consulta de I/O em disco ou rede, uma consulta bloqueante. Entenda como “bloqueante” a consulta que requer dados do disco ou da rede e como “não bloqueante” aquela consulta que requer dados do cache L1, L2 e memória ram. Com isso existe todo um processo de troca de contexto do SO, como também pilhas de execução, isso tudo consumindo memória e fazendo com que, sobre alta concorrência o servidor comece a enfileirar requisições e posteriormente, cair.

NodeJS resolve o problema da alta concorrência com a utilização de apenas 1 pilha de execução e um Event-loop. Sempre que uma requisição de I/O bloqueante é feita, ela é direcionada para o Event-loop enquanto que servidor volta a ficar idle podendo continuar a atender outras requisições. Assim que a requisição bloqueante tiver sido feita e os dados retornados, é emitido um evento o retornado os dados para o cliente e novamente o servidor volta a ficar idle. Para quem conhece o Nginx, é um processo bastante semelhante. Com isso NodeJS consegue atender muito mais clientes simultaneamente sem enfileirar requisições e sem bloqueá-las também.
Instalando NodeJS em derivados do Debian

Então vamos ao que interessa! Mão na massa!

Estou instalando o NodeJS em um Ubuntu 11.04 mas essa instalação deve funcionar em qualquer derivado do Debian. Em caso de algum problema com alguma distro ou versão mandem um feedback…=)

Primeiro vamos instalar as dependências:
sudo aptitude install git-core curl build-essential openssl libssl-dev
Agora faremos o download da última versão estável do NodeJS e descompacte :
wget http://nodejs.org/dist/node-v0.4.9.tar.gz tar -vzxf node-v0.4.9.tar.gz
Compile o código fonte e espere terminar…
cd node-v0.4.9 ./configure && make && make install
Quando terminar, você já deve ter o NodeJS instalado em sua máquina, para verificarmos a instalação basta buscar a versão no NodeJS como abaixo:
node -v
Esse comando deve retornar a versão instalada do NodeJS. Caso ele retorne o número correspondente a versão que instalamos significa que tudo deu certo e você já está pronto para desenvolver usando NodeJS!

Fica para um próximo post a instalação do repositório de módulos do NodeJS onde podemos encontrar uma grande variedade de módulos, frameworks e drivers de bancos de dados, dentre outras coisas bastante úteis.

Espero que ajude, e mandem um feedback, dúvidas, sugestões, correções… enfim… =D
Até a próxima!

16 de abr de 2012

Facilitando a integração com pagamentos Cielo e Locaweb


Olá! Depois de um longo período sem escrever, volto, e estou muito feliz por estar de volta. =)

Mas vamos deixar de rodeios e sigamos ao que interessa. Hoje vou disponibilizar e dar algumas explicações a respeito de uma classe php que desenvolvi para facilitar a integração de quem pretende usar pagamentos pela internet usando a operadora Cielo e gateway de pagamentos Locaweb.

Isso mesmo, estou utilizando Cielo, por ser, atualmente, uma das empresas que operam o maior número de cartões (nacionais/internacioais) além de ser, também, uma das empresas com a melhor API para nós programadores web trabalharmos. O Gateway Locaweb, bem, eu já trabalho com Locaweb a bastante tempo, considero um ótimo serviço de host e a Cielo exige que o logista utilize um dos Gateways cadastrados e autorizados pela Cielo. Claro que nada te impede de ter teu próprio gateway, bastando seguir as regras do padrão PCI. Nessa página você confere os gatways cadastrados, em processo de cadastramento, e ainda tem informações para montar um gateway próprio.

Então vamos dar uma passada rápida pelos estágios de integração estabelecidos pela cielo. Basicamente a cielo divide sua integração em 3 partes, sendo: 1-Afiliação, 2-Desenvolvimento e 3-Homologação.

1-Afiliação: É quando o estabelecimento entra em contato com a cielo para solicitação dos serviços. É bem fácil através deste link

2-Desenvolvimento: Após seu estabelecimento estar corretamente cadastrado na cielo. É quando a cielo espera que você leia os manuais (que irei disponibilizar no final) e que desenvolva ou instale toda a infraestrutura necessária ao funcionamento dos pagamentos. Caso isso esteja pronto, então deve-se entrar em contato com a cielo para prosseguir direto ao próximo passo, homologação.

3-Homologação: Assim que seu estabelecimento entra em homologação, a cielo irá enviar uma chave para um ambiente de testes. Essa chave ainda não é da sua empresa. Com essa chave você deverá deixar o sistema funcionando para que os técnicos da cielo possam testar seu sistema. Geralmente essa é a fase que demora mais, no máximo 1 ou 2 dias desde que tudo esteja de acordo com o que exige a cielo. Um aviso aos desenvolvedores, o ambiente que é usado para testes geralmente será Internet Explorer 7, então previnam-se!

A locaweb disponibiliza um manual e alguns arquivos de exemplo para o uso da cielo através de seu gateway. Então peguei esses arquivos e meio que “compilei” tudo em uma classe php que disponibilizei no meu github. Existe além da classe um arquivo index e um README com exemplo do uso de todos os métodos da classe, digamos que um sumário do que está nos manuais da Locaweb e Cielo.