Archive for March, 2010

Encurtando URLs com o Bitly-PHP

5

Sobre 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

javascript freak, php lover, zend certified engineer, ruby programmer wannabe, ruby developer at Editora Abril, musician and skater at free time.

Twitter LinkedIn 


Posts Relacionados:

Tutorial jQuery – Método $.live();

6

Hoje 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
  • 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

javascript freak, php lover, zend certified engineer, ruby programmer wannabe, ruby developer at Editora Abril, musician and skater at free time.

Twitter LinkedIn 


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

javascript freak, php lover, zend certified engineer, ruby programmer wannabe, ruby developer at Editora Abril, musician and skater at free time.

Twitter LinkedIn 


Posts Relacionados:

  • Nenhum post relacionado!
Go to Top