tomáS

pensando alto sobre a web

Posts Tagueados ‘Programação

O PHP e a escalabilidade

com 6 comentários

Uma coisa é você fazer um site de relacionamento por exemplo que será acessado pelas pessoas do seu bairro outra coisa é você ter um site que será acessado globalmente por milhares (ou até milhões de pessoas). Um site do segundo tipo precisa ser escalável que, para usar a definição da Wikipédia seria:

escalabilidade é uma característica desejável em todo o sistema, em uma rede ou em um processo, que indica sua habilidade de manipular uma porção crescente de trabalho de forma uniforme, ou estar preparado para o crescimento do mesmo”

ponte.jpg

Um site do segundo tipo deve ser fácil de manter, estar preparado para um crescimento rápido além de ser capaz de usar os recursos (principalmente hardware e conexão) de forma ótima e fazer isso não é fácil. Às vezes, por falta de experiência, alguns programadores acabam ignorando totalmente esse aspecto no sistema que ele está desenvolvendo, resultando em uma aplicação que não é capaz de receber uma demanda muito grande de acessos. O que não é exatamente um problema se você estiver desenvolvendo sites pequenos e que permanecerão pequenos.

Agora em aplicações do governo, sistemas de transações bancárias, ou qualquer outro site que será projetado para realizar um grande número de acessos e operações precisam pensar em escalabilidade. Assim o desenvolvedor deverá pensar em cache, otimização de banco de dados, persistência, otimização de código, diminuir o consumo de banda entre outras coisas. Existe muita coisa pra aprender em cada um desses tópicos e é isso que diferencia um desenvolvedor de um “sobrinho“.

sobrinho.jpg

Por isso a indústria ama ambientes de programação como Java, .Net, que têm linguagens que não possuem a flexibilidade das linguagens dinâmicas como o Ruby, Python mas têm soluções (bibliotecas, padrões, servidores de aplicações, além de estudos) para todos esses problemas de escalabilidade, além de outros que aparecem quando você está criando sistemas críticos que irão receber grande número de acessos e irão manipular quantidades massivas de dados.

A esta altura você deve estar perguntando: “sim, e o PHP do título do post tem a ver com isso?”. Bom, o PHP é uma linguagem bastante popular e muito fácil de se aprender, logo existe um grande número de pessoas que sabem PHP e desenvolvem sistemas de tudo quanto é jeito inclusive sem levar em conta nenhuma boa prática de programação. Para ilustrar melhor o que eu quero falar, veja um trecho deste excelente artigo:

Todos sabemos que a versão 4 do PHP é poderosa, mas a imagem de que projetos desenvolvidos em PHP tem a vantagem de que “até meu sobrinho pode terminar” infelizmente está enraizada na mente de muitos gerentes de TI.

O texto citado fala do fim da descontinuação do PHP 4 e advento do PHP 5 e de, talvez, uma “nova fase” da vida desta linguagem. O PHP 5 traz uma implementação de orientação a objetos bastante poderosa, o que dá poder ao projetista o poder de implementar boas práticas de projeto, os design patterns. Além disso existem vários frameworks bons como o Zend além de vários casos de sucesso da adoção da linguagem no desenvolvimento de sites de acesso massivo como: Facebook, Flickr, last.fm. O que mostra que a linguagem pode sim ser usada de maneira séria para projetos que levam em conta a escalabilidade e outros fatores que são importantes no desenvolvimento destes tipos de sistema.

Claro que não é a linguagem utilizada que irá fazer o seu sistema ser robusto ou não, mas os “criadores” da linguagem podem ajudá-lo através da criação de Frameworks com bons princípios, recursos na própria linguagem que permitam os programadores implementarem boas práticas de programação e, claro, criar uma cultura de bom desenvolvimento entre os seus programadores. Bom, acho que isto está acontecendo para o PHP, com certeza boa coisa vem por ai.

Escrito por tomas

26 Março, 2008 em 11:38

Como acessar a API do Twitter via PHP

com 7 comentários

O Twitter é um site que popularizou o conceito de microblogging e vem inovando muito. Você pode utilizá-lo através de sua interface web padrão além de uma variedade muito grande de programas que utilizam a sua API, aliás, a maioria do tráfego do Twitter vem de sua API e neste post eu irei mostrar exatamente como utilizá-la, farei isso usando a minha linguagem de script pra web favorita: PHP.

Para acessar a API temos que utilizar o protocolo HTTP, logo teremos que criar conexões HTTP utilizando PHP. Para não ter que manipular a conexão em baixo nível irei utilizar o Zend HTTP que encapsula toda a “chatice” de baixo nível. Graças ao Zend o código ficou bastante simples, com apenas 6 linhas de instruções.

Como já temos o problema da conexão HTTP resolvido podemos pensar em alto nível, o nosso código irá enviar um update para o Twitter dizendo: “Estou vivo! ;) “. Para isso devemos seguir o seguinte algoritmo:

1 – Acessar a página do Twitter que permite fazer os UPDATES.
2 – Nos autenticar no sistema.
3 – Setar a variável ’status’, que vai guardar o nosso update.
4 – Requisitar um método POST.

Eis o código:

<?php
 require ‘Zend/Http/Client.php’;

 $client = new Zend_Http_Client(‘http://twitter.com/statuses/update.rss’);
 $client->setAuth(’seulogin’,’suasenha’,Zend_Http_Client::AUTH_BASIC);
 $client->setParameterPost(array(’status’ => ‘Estou vivo! ;) ‘));
 $response = $client->request(Zend_Http_Client::POST);
  
 print_r($response);
?>

A linha $client = new Zend_Http_Client(‘http://twitter.com/statuses/update.rss’); cria um cliente HTTP que irá acessar a página que permite que nos façamos update, o formato dela é .rss porque é neste formato que eu quero receber a reposta vinda do Twitter, além deste formato você pode escolher os formatos .xml, .json entre outros. Logo esta linha corresponde ao passo 1.

A linha $client->setAuth(’seulogin’,’suasenha’,Zend_Http_Client::AUTH_BASIC); faz a sua autenticação no sistema do Twitter, logo este é o passo 2.

A outra linha seta a variável status dizendo que estamos vivos ;) , esta é a mensagem que será enviada para o Twitter e será o seu update.

A linha $response = $client->request(Zend_Http_Client::POST); executa a requisição POST mas acho que isso deu pra perceber, não?

A última linha não está no nosso algoritmo, ela apenas mostra a resposta enviada pro Twitter, que mostra o dia, hora e tamanho da mensagem que você enviou entre outras informações.

Feito isso você pode ir no seu Twitter e ver o resultado do seu código.

O meu ficou assim:

twitapi.jpg

Escrito por tomas

20 Janeiro, 2008 em 11:30

Publicado em Cool, Dica, PHP, Programação

Etiquetado com , , ,

Last.fm “easy radio”

sem comentários

Há um tempo atrás eu escrevi um post mostrando um jeito fácil de encontrar novas bandas utilizando o last.fm. Na verdade é uma maneira que eu encontrei de ouvir streams de músicas que estão hospedadas no last.fm sem ter que instalar o Audioscrobbler e fazer cadastro.

A solução pode ser acessada através deste endereço. É fácil de usar, ao entrar no site a app pergunta o que você quer ouvir, você digita o nome da banda e bingo :) .

Fiz algumas modificações no css do aplicativo e queria mostrar a vocês… Boa navegada :)

Escrito por tomas

13 Novembro, 2007 em 5:09

Opensocial desvelado

com 8 comentários

Disseram que o Google perdeu a guerra pelo Facebook ao ser anunciada a compra de uma parcela do mesmo pela Microsoft. Mas o que ninguém esperava, nem a Microsoft, era que o Google não estava competindo com ela para ver quem ia ficar com o Facebook.

Ao invés disso o Google estava planejando uma alternativa mais aberta, livre e atraente tanto para desenvolvedores quanto para websites e consumidores, o OpenSocial.

Veja os motivos:

Porque é bom para os desenvolvedores?

Com a criação cada vez maior de redes sociais e a possibilidade de criar aplicações para as mesmas os desenvolvedores geralmente têm que escolher para qual rede social ele irá escrever suas aplicações. Ou então ele terá que escrever uma versão da aplicação para cada rede social que ele disponibilizá-la.
 
Isso significa gastos de tempo para aprendizado e reescrita de código ou gasto com contratação de pessoal para portar a sua aplicação.

Com o OpenSocial o Google pretende disponibilizar uma API com a qual os desenvolvedores poderão escrever códigos que irão funcionar em uma variedade grande de redes sociais, ou seja, “learn once, run everywhere” ou o “write once, run everywhere” do Java, só que para a Web.

Porque é bom para os sites?

Virtualmente qualquer site poderá rodar aplicações do OpenSocial, basta o mesmo seguir algumas diretrizes como implementar a chamada SPI (OpenSocial Service Provider Interface).

Uma vez feita essa implementação o site terá um número muito grande de desenvolvedores que poderão estender as funcionalidades do mesmo.

Porque é bom para os consumidores?

O pessoal do Google responde a essa pergunta dizendo que é “mais mais mais”, o que significa: mais interatividade, mais aplicações em mais redes sociais.

Ou seja, o usuário terá mais interatividade, pois existirão mais desenvolvedores e mais aplicações e em maior número de redes sociais das quais o mesmo participa.
 
E agora, qual o próximo passo?

Bom, para os desenvolvedores e consumidores o próximo passo é esperar que primeiros sites afiliados já comecem a implementar a SPI de forma escalável para que o Google possa começar a brincadeira.

O Orkut disse que irá disponibilizar em breve uma sandbox para que os desenvolvedores e usuários possam começar a utilizar o OpenSocial.

É isso, depois de ruminar um pouco sobre o OpenSocial eu escrevi este texto que espero que seja esclarecedor a todos, espero também que este seja o primeiro de uma série de posts sobre o mesmo só que os próximos terão um caráter mais técnico que este.

Escrito por tomas

3 Novembro, 2007 em 4:03

Um jeito fácil de encontrar novas bandas usando o last.fm

sem comentários

Às vezes enche o saco ouvir as mesmas músicas e nada se compara (há um exagero intencional aqui) ao prazer de descobrir uma boa música ou uma boa banda.

Para contornar o problema de encontrar músicas legais eu procuro conhecer mais bandas que conheço pouco mas isso é cansativo e muitas vezes não dá certo, ainda mais quando nenhum amigo meu conhece a banda e logo não pode me guiar no processo…

Consultar os amigos é uma opção também mas é difícil quando vocês ouvem exatamente as mesmas coisas e o que queremos aqui é DESCOBRIR.

Acho que a melhor alternativa é usar o site last.fm que permite que você conheça artistas similares aos seus favoritos e encontre também pessoas com gostos musicais parecidos ao seu.

O last.fm ainda tem o Audioscrobbler onde você digita o nome de um artista ou banda que você gosta e escute grátis bandas/artistas similares a este e assim sucessivamente. O problema é que para usá-lo você precisa se logar e baixar o programa, para acelerar o processo eu fiz uma pequena aplicação com o widget deles para criar uma alternativa mais fácil.

É simples, você entra neste endereço, digita o nome do artista na caixa de busca, vai aparecer uma caixinha vermelha, você aperta o play e pode deitar, pegar uma cervejinha e apreciar a descoberta. Sem login, sem stress e grátis…

PS: Apesar de o site ter músicas de bandas brasileiras como Los Hermanos, Paralamas, ele funciona melhor com as gringas.

Escrito por tomas

25 Setembro, 2007 em 1:52

Publicado em Dica, Hot Links, Link, Música, Programação

Etiquetado com , , ,