Archive for March, 2010
Encurtando URLs com o Bitly-PHP
5Sobre o Bitly-PHP
Nos últimos dias tenho trabalhado em uma library em PHP (claro) para abstrair as funcionalidades da API RESTful do Bit.ly . Se chama Bitly-PHP. Toda a library foi desenvolvida utilizando PHP5, Orientação a Objetos, Naming Convention e cURL (se não tiver ele usa uma função alternativa).
Download e Documentação
Você pode fazer o download da library direto na pagina do Bitly-PHP no GitHub. Todos os outros exemplos de uso da library você encontra direto no Wiki do Bitly-PHP.
Se você tem o git na sua máquina você pode executar o comando:
git clone git://github.com/igorescobar/Bitly-PHP.git
Encurtando URLs
O primeiro que você deve fazer é incluir a arquivo que contém a library do Bitly-PHP:
include_once("Bitly-PHP/bitly.php");
Depois é muito simples. Você só precisa instanciar o objeto do Bitly PHP, informar a URL que quer encurtar, invocar o método responsável por encurtar as URLs, o shorten.
include_once("Bitly-PHP/bitly.php");
$bitly = new Bitly();
$bitly->url = 'http://www.google.com/';
$bitly->shorten();
O Bitly-PHP possuí um método responsável por acessar os dados que a API do Bit.ly retorna chamado getData().
include_once("Bitly-PHP/bitly.php");
$bitly = new Bitly();
$bitly->url = 'http://www.google.com/';
$bitly->shorten();
$bitly->getData()->shortUrl; // Saída: http://bit.ly/b6R4Uf
Se você não sabe qual o nome do parametro que você quer chamar, chame o metodo debug():
include_once("Bitly-PHP/bitly.php");
$bitly = new Bitly();
$bitly->url = 'http://www.google.com/';
$bitly->shorten();
$bitly->debug();
O debug vai mostrar:
{
"errorCode": 0,
"errorMessage": "",
"results": {
"http://www.google.com/": {
"hash": "2V6CFi",
"shortCNAMEUrl": "http://bit.ly/b6R4Uf",
"shortKeywordUrl": "",
"shortUrl": "http://bit.ly/b6R4Uf",
"userHash": "b6R4Uf"
}
},
"statusCode": "OK"
}
É isso!
[]‘s
Posts Relacionados:
Tutorial jQuery – Método $.live();
6Hoje vou falar sobre um método do jQuery muito útil, muito mesmo. Mais informações em inglês pode ser encontrada na documentação oficial do método .live().
O Problema
É muito comum quando estamos desenvolvendo aplicações para Internet e precisamos criar ferramentas tão dinâmicas que acabamos por utilizarmos quase todo o potencial que o JavaScript dispõe a oferecer. Nas ferramentas que desenvolvo é muito comum a interface da ferramenta ser controlada e alterada quase que o tempo todo através da manipulacão do DOM e muitas vezes precisamos atachar comportamentos em um determinado elemento da página.
Por exemplo: Temos um sistema de comentários onde todos os comentários são carregados e as respostas destes comentários aparecem como arvore.
- Comentário 1
- Comentário 2
- Resposta do comentário 2
- Resposta da resposta do comentário 2
- Resposta do comentário 2
- Comentário 3
E assim vai…
Eu posso responder em tempo real um comentário e ele ja vai aparecer para mim. Tudo via jQuery. Quando fazemos uma varredura no DOM do documento usando os seletores do jQuery, procuramos por todos os botões que tenha a classe “responder” que originalmente ficam sem ação e depois, via jQuery damos ação ao elemento.
$('.responder').bind('click', function() {
// instruções
});
Neste ponto, temos um problema. O indice de elementos do jQuery é estático, ele não atualiza automaticamente. Se um novo botão responder surgir na tela o jQuery não surtirá efeito sobre ele, pois ele apareceu DEPOIS da primeira varredura no DOM quando eu usei o seletor $(‘.responder’).
Solução
Para corrigir este problema, podemos utilizar o .live() do jQuery. Independente de quando e a quantidade de botões que surgirem na tela o jQuery irá acrescenta-lo em seu índice e você poderá manipula-lo da forma como quiser.
$('.responder').live('click', function() {
// instruções
});
Caso queira adicionar ao DOM o mesmo comportamento em mais de um evento, basta fazer o seguinte:
$('.responder').live('mouseover mouseout', function(event) {
if (event.type == 'mouseover') {
// faça isso
} else {
// faça aquilo
}
});
Ou crie 2 lives separadamente para cada evento.
$('.responder').live('mouseover', function() {
// instruções
});
$('.responder').live('mouseout', function() {
// instruções
});
A princípio o conceito pode ser um pouco confuso. Fica difícil de entender isso quando nunca se passou pelo problema. O dia que algo não funcionar como o esperado pelo jQuery nem simplesmente ter sido chamado, lembre-se do $.live();
Igor
[]‘s
Posts Relacionados:
Novo ano, nova jornada.
3É isso aí! Ano novo, nova jornada!
Antes do ano de 2009 acabar eu já observava indícios de que minha vida estava prestes a mudar. Fui Analista de Sistemas da Visie durante 2 anos. Sou de São José dos Campos e fui contratado pelo Elcio Ferreira no início de 2008 para trabalhar em São Paulo – Capital alocado em um cliente da Visie no centro de São Paulo.
Trabalhei quase 2 anos em um projeto para a ACSP (Associação Comercial de São Paulo) que iria substituir o atual sistema de proteção ao crédito da empresa (o famoso SPC). Neste período eu aprendi bastante. Tive a oportunidade de conhecer pessoas incríveis, que realmente mudaram minha vida diretamente e indiretamente.
Quando o projeto foi chegando ao fim o Elcio não achava mais necessário a minha presença no projeto e achou que eu seria mais útil na matriz da Visie em São Judas. Fui para lá e foi ótimo! conheci um novo modelo de trabalho, pessoas incríveis. Adoro trabalhar em um lugar onde as pessoas são apaixonadas pelo que fazem. A realmente sentirei falta de trabalhar para Visie.
O início de 2010 foi quente para mim. Recebi muitas propostas de emprego neste período, a maioria para sobrinhos faz tudo (#sick) e algumas interessantes. Uma delas foi a oportunidade de trabalhar no Virgula. Fui chamado para entrevista, gostei muito do lugar e pelo que conversamos a equipe também é promissora. Lá eu fiz um teste. Um simulado oficial da Zend (in english) para testar os conhecimentos. Três dias depois eu fui comunicado de que havia sido selecionado para a vaga.
Hoje, dia 16 de março de 2010. Eu encerro a minha jornada como membro da Visie e inicio uma brand new como parte da equipe do Virgula.
Que venha o Virgula, então!
Igor
[]‘s

