sexta-feira, 30 de outubro de 2009

Install Amarok 1.4 on Ubuntu 9.04

Been using Jaunty since it came out. Loving the speed, simplicity and estatics!!

Everything works well except for Amarok 2 which ships default with Jaunty. I’ve been an Amarok 1.4 user for a long time now, moving to Amarok 2 is not something I fancy doing right now. Fortunately getting Amarok 1.4 onto Ubuntu is easy. Here’s how;

Create a new source file in “/etc/apt/sources.list.d/” and call it “amarok14.list”.

root@jackal:/# touch /etc/apt/sources.list.d/amarok14.list

Add these 2 lines to the source file. You can either copy & paste or run the echo command seen below.

deb http://ppa.launchpad.net/bogdanb/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/bogdanb/ppa/ubuntu jaunty main

root@jackal:/# echo "deb http://ppa.launchpad.net/bogdanb/ppa/ubuntu jaunty main" >> /etc/apt/sources.list.d/amarok14.list
root@jackal:/# echo "deb-src http://ppa.launchpad.net/bogdanb/ppa/ubuntu jaunty main" >> /etc/apt/sources.list.d/amarok14.list

Make sure to register the PPA GPG key.

root@jackal:/# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0x1d7e9dd033e89ba781e32a24b9f1c432ae74ae63

Update your sources.

root@jackal:/# apt-get update

Remove any old instance of Amarok

root@jackal:/# apt-get remove amarok

Install Amarok 1.4

root@jackal:/# apt-get install amarok14

That’s it. Buzz me if it doesn’t work.

Referência : http://thedaneshproject.com/posts/install-amarok-14-on-ubuntu-904/

quinta-feira, 24 de setembro de 2009

Instalando o Symfony de forma diferente do modo convencional (do site do symfony)



Bem, hoje eu me deparei com o seguinte problema : Tinha que instalar o symfony no meu fedora core 11, só que meu terminal ta zuado, não ta acessando a internet, meu yum ta bugado (ta tudo uma merda aqui no meu pc do trabalho! rs...). então a solução era instalar manualmente e colocar nas variáveis de ambiente, então como fazer? Simples assim:

Primeiro baixe o Symfony : http://www.symfony-project.org/installation/1_2
Descompate o arquivo : tar zxpf symfony-1.2-latest.tgz
Renomeie a pasta : mv symfony-1.2.0 symfony
Agora mova a pasta do symfony para o diretório que vc preferir (no meu caso para /usr/lib64/) :
mv symfony /usr/lib64
Agora que vem a malandragem, setar o caminho de execução nas variáveis de ambiente. Edite o arquivo /etc/bashrc (no ubuntu fica em /etc/bash.bashrc) : gedit /etc/bashrc

E acrescente essas linhas ao fim do arquivo

symfony="/usr/lib64/symfony/"
CLASSPATH="$symfony:$symfony/data/bin/symfony:$."
PATH="$symfony/data/bin/:$PATH"
export symfony CLASSPATH PATH

Feche e abra novamente o terminal, e para testar digite symfony -V
Se tudo correr bem, ele deve exibir algo como symfony version 1.2.8 (/usr/lib64/symfony/lib), se não der certo ferrou tente ver se seguiu os passos corretamente..
Qualquer dúvida mande 1 comment!
Abraço

domingo, 20 de setembro de 2009

Habilitar mod_rewrite no ubuntu 9.04

Esta é uma lição de Gilberto Albino, originalmente posta em seu blog http://www.gilbertoalbino.com/linux-habilitar-mod_rewrite-no-ubuntu/

Após ter instalado o Apache, não só no Linux como também em outros sistemas operacionais, para quem utiliza o recurso de redirecionamento de URL’s,

é preciso habilitar o módulo rewrite, conhecido por mod_rewrite.

No Ubuntu há um procedimento bem fácil, porém, meio que engana bobo. A saber, você ativa um módulo usando uma lógica de comando apache:

a2enmod

Que é um codinome para: Apache 2 enable module.

Então, para ativar o módulo de redirecionamento de URL’s, rewrite, o código ficaria assim:

sudo a2enmod rewrite

Feito isto bastaria reiniciar o servidor apache:

sudo /etc/init.d/apache2 restart

Por mais óbvio que pareça, o módulo rewrite foi ativado, mas o apache não configurou nada além da linha que ativa o módulo no arquivo de configuração do módulo, deixando assim por conta de você editar manualmente as linhas que possuem:

AllowOverride None para

AllowOverride All

No arquivo /etc/apache2/sites-available/default.

Então, abra o editor de texto:

sudo gedit /etc/apache2/sites-available/default

e procure pelas linhas com AllowOverride None e troque por AllowOverride All. ]

Salve e feche o editor de textos e reinicie o apache :

sudo /etc/init.d/apache2 restart

É isto ai, agora está tudo funcionando!

quarta-feira, 19 de agosto de 2009

Instalando, configurando e administrando o Postgres

O PostgreSQL é um poderoso SGDB muito difundido no mundo livre e usando em aplicações que precisam de um bom desempenho.

O PostgreSQL possui pacote *.tgz para o Slackware que facilita sua instalação. Você pode baixar o pacote de instalação no site www.linuxpackages.net, que só tem pacotes para Slackware.

Feito isso, vamos aos passos para sua instalação, configuração e administração.

Passo 1: Instalação do pacote.

# installpkg postgres*.tgz

Passo 2: Criar um grupo no sistema.

# groupadd postgres

Passo 3: Criar um usuário no sistema.

# useradd -g postgres -s /bin/bash -d /var/lib/pgsql postgres

Passo 4: Criar o local onde reside a estrutura do banco.

# mkdir -p /var/lib/pgsql/data

Passo 5: Mudar a permissão

# chown -R postgres:postgres /var/lib/pgsql

Passo 6: Logar como superusuário.

# su postgres

Passo 7: Iniciando a base de dados.

$ initdb -D /var/lib/pgsql/data

Passo 8: Iniciar o servidor.

$ postmaster -i -D /var/lib/pgsql/data > logfile 2>&1 &

ou

# /etc/rc.d/rc.postgres start

Passo 9: Criando um base de dados (Data Bases)

$ createdb postgres

Passo 10: Acessando a base de dados.

$ psql postgres

Pronto... Agora para criar as tabelas e inserir dados nelas é só usar os comandos SQL.

OBS: Para ter acesso você deve logar como superusuário para o usuário postgres.

O Postgres por padrão acessa as bases de dados sem senha, para fazer acesso com senha e melhorar a segurança do dados entre no arquivo pg_hba.conf.

$ psql postgres
postgres=# alter user postgres with encrypted password 'sua-senha';
ALTER USER -> RESPOSTA.

$ vim /var/lib/pgsql/data/pg_hda.conf

Localize mas ultimas linhas a palavra TRUST e mude para md5.

Agora pare o servidor:

$ pg_ctl stop -D /var/lib/pgsql/data/ -s -m fast

ou

# /etc/rc.d/rc.postgres stop

Agora inicie o servidor:

$ postmaster -i -D /var/lib/pgsql/data > logfile 2>&1 &

ou

# /etc/rc.d/rc.postgres start

Pronto, agora só com senha o usuário consegue acessar a base de dados.

Acesso remoto
A porta para acesso remoto do Postgres é a: 5432

Para configurar o acesso remoto entre no arquivo: postgresql.conf

$ vim /var/lib/pgsql/data/postgresql.conf

Localize a linha:

#listen_addresses = '*' -> para aceitar qualquer IP ou HOST do seu servidor

#port = 5432 -> desmarque

Depois entre no arquivo: pg_hda.conf

Este arquivo controla quais host tem permissão de conexão, como os clientes se autenticam, quais usuários do PostgreSQL tem acesso e que banco de dados eles podem acessar.

local DATABASE USER METHOD [OPTION]
host DATABASE USER CIDR-ADDRESS METHOD [OPTION]
hostss1 DATABASE USER CIDR-ADDRESS METHOD [OPTION]
hostnoss1 DATABASE USER CIDR-ADDRESS METHOD [OPTION]

Sendo:

* tipo de conexão (local ou host)
* banco de dados (all=todos)
* usuários (all=todos)
* IP e mascara (padrão CIDR)
* método (reject,trust,password,md5,ident same user)

Exemplo 01: Acessa a base de dados sem senha:

host base_de_dados all 192.168.1.1/32 TRUST

Exemplo 02: Acessa a base de dados com senha:

host base_de_dados all 192.168.1.1/32 md5
host all all IP_do_Client/32 md5

Exemplo 03: Restringe acesso externo para o usuário postgres:

local all postgres ident sameuser

Para fazer conexão:

# psql -h 192.168.1.1 database usuário

Fonte

quarta-feira, 22 de julho de 2009

15 dicas para deixar seu site PHP mais seguro

1. Evite colocar seu arquivo de conexão com banco de dados no mesmo diretório das suas páginas ou no diretório usado para includes. O melhor a fazer é colocá-lo em algum diretório fora da raiz do site.

2. Desligue no servidor web a configuração que permite a listagem dos arquivos presentes nos diretórios que não tem um index.php.

3. Evite usar o nome includes para o diretório onde você colocará esse tipo de arquivo.

4. No diretório que você usar para colocar seus arquivos de include, sempre coloque um arquivo index.htm e um index.php em branco. Isso evitará que o servidor liste o conteúdo desse diretório caso esteja com a configuração para listagens habilitada.

5. Jamais use a extensão .inc para seus arquivos de include. Isso pode fazer com que o servidor web mostre dados importantes contidos nesses arquivos. Use sempre a extensão .php. Dessa forma o arquivo sempre será processado antes de ser entregue para os usuários.

6. Desligue o error_reporting no servidor de produção. Erros em scripts PHP normalmente exibem a localização física dos arquivos no servidor ou mostram as consultas inteiras que estão sendo usadas para acessar o banco de dados, por exemplo. Com o error_reporting desligado, essas informações não serão mostradas.

7. Ao criar uma área de administração do site, evite usar nomes óbvios como admin.

8. Ainda na mesma área administrativa, faça configurações que obriguem os usuários a mudar de senha freqüentemente e que não aceite senhas muito simples. Evite também a criação de usuários padrão como: admin, administrador, admintrator, root.

9. Em formulários que enviam dados diretamente para o banco, tomar cuidado com SQL Injection. Para resolver isso, capture esses dados e trate-os com addslashes.

10. Em sistemas dinâmicos, evitar fazer scripts que apagam dados do banco. Costume usar status para os registros e depois construa um script coletor que irá tratar esses dados que deveriam ser apagados.

11. Não esqueça que é possível configurar o nível de permissão do usuário que será usado para acessar o banco de dados. Se seu site apenas faz consultas. Coloque no seu arquivo de conexão um usuário que só possa fazer SELECT no banco.

12. No php.ini, que é o arquivo de configuração do PHP, use o parâmetro disable_functions para desabilitar funções que podem ser perigosas como: exec(), eval(), readfile(), shell_exec(), system(), file(), fopen(), popen() entre outras.

13. Ainda no php.ini, habilite o safe_mode.

14. Sempre desabilitar o usuário root padrão do MySQL, que tem senha em branco.

15. Se for usar algum aplicativo para blog, chat, wiki, etc. Não esqueça de remover o arquivo de instalação do diretório do aplicativo.

Contribua com mais dicas!

Fonte

segunda-feira, 15 de junho de 2009

Mudanças no Zend_Loader

Com o advento da versão 1.8.0 do Zend Framework algumas mudanças no Zend_Loader serão necessárias quando for utilizado o autoload.

Até então nós habilitávamos o Zend_Loader no bootstrapper para usar o autoload da seguinte forma:

Zend_Loader::registerAutoload();


Com o código acima, todas as classes incluindo as que utilizassem a estrutura de namespaces do ZF seriam inclusas no pelo autoload no ato da criação de sua instância desde que estivessem no include_path, porém, esta maneira está deprecated e com isso algumas mudanças são necessárias para que seu código continue funcionando em versões futuras e não receba um notice nas versões atuais.

O que mudou ?

Foi criada uma nova classe chamada Zend_Loader_Autoloader que implementa algumas novas funcionalidades e facilita a inclusão de bibliotecas externas à nossa aplicação. Para utilizarmos, basta criarmos uma instância dela no bootstrapper conforme o exemplo abaixo e pronto.

Como assim?

Antes de mostrar o código vamos entender como a coisa funciona:

Ao criar uma instância da classe Zend_Loader_Autoloader no bootstrapper o ZF registra a regra de autoloading com spl_autoload e assim o processo é automatizado.

Quando a instância é criada, o ZF já busca pelas classes dos namespaces Zend_ e ZendX_ automaticamente, porém qualquer classe adicional não será encontrada.

Mas antes de resolver isso segue o código que deve ser escrito para habilitar o autload para Zend_ e ZendX_:

// Inicializa o autoloader padrão para Zend_ e ZendX_
$autoloader = Zend_Loader_Autoloader::getInstance();

// Inicializa o autoloader padrão para Zend_ e ZendX_
$autoloader = Zend_Loader_Autoloader::getInstance();

Beleza. Agora vamos configurar para que outras classes sem namespace sejam incluídas pelo autoload (lembrando que elas devem estar no include_path).

// Inicializa o autoloader padrão para Zend_ e ZendX_
$autoloader->setFallbackAutoloader(true);

Fácil demais não é?

Agora supondo que você crie o seu próprio namespace e por exemplo crie suas próprias classes usando herança e extendendo classes do próprio ZF.

Quando eu faço isso eu normalmente uso o prefixo Base_ para o meu namespace, então, para colocar este namespace no autoload eu faço assim:


// Registra o namespace Base_ no autoloader
$autoloader->registerNamespace('Base_');

Tranquilo, certo?

Bem, lembra de um post que coloquei aqui a algum tempo atrás que mostrava como integrar outras libs com o autoload do ZF? Naquele caso foi integrando o ezComponentes com o ZF.

Bem, esquece tudo aquilo porque aquilo já não nos pertence mais. Agora nós devemos fazer assim:



$autoloader->pushAutoloader(array('ezcBase', 'autoload'), 'ezc');


Concluindo

Apesar de ter havido uma quebra de compatibilidade com versões anteriores estas modificações foram bem legais porque facilitam no nosso dia-a-dia e com isso nossa produtividade aumenta.

Ainda existem outros aspectos que poderiam ser abordados mas que não julguei importantes para o post, como retornar todos os namespaces registrados, excluir um determinado namespace do autoloader e etc.

Outro ponto que achei bacana nesse novo objeto é que nós podemos modificar as configurações de autoloading em outros locais diferentes do bootstrapper como por exemplo num controller.

Espero que gostem da dica.

Abraços.

Artigo retirado do blog do Adler Medrado

quarta-feira, 15 de abril de 2009

Script de confirmação de data

Bem , ja fazia algum tempo que eu estava pensando em estudar ajax (já que é uma tendência para web) , e como todos que conhecem ajax sabem , javascript é imprescindível , pois ajax não é nada mais do que uma metodologia baseada em javascript , daí tive que começar do basicão do javascript (ja que as únicas coisas de javascript que eu sabia eram simples alerts) , e no meio dos meus estudos entrei em um apêndice de tratamento de datas em javascript ,e após a construção do meu primeiro scrip q confirmação de data resolvi postá-lo aqui , pois eu mesmo no trabalho ja precisei desse tipo de script e tive que recorrer a sites de terceiros em busca do mesmo. Só lembrando que para acessar a função basta criar uma página html com 1 link "[a]" e chamar a função usando algum evento, Ex: [a onclick="mostraData();"]Clique aqui para mostrar a data[/a].
Lembre-se de alterar os colchetes "[]" por tags "<>" , pois o sistema do blog reconhece como html e não mostra o código fonte corretamente se eu deixar como tags.
Segue o código :
data.js

/*
*
* Criado por Ciro Rodrigues Galvão Junior
* em 15/04/2009
*
*/

function mostraData(){

// instanciando o objeto date , para podermos manipular os métodos de data.
var data = new Date();
// Obtendo o dia , mês e ano.
var dia = data.getDay();
var mes = data.getMonth();
var ano = data.getFullYear();

//Criando array com os nomes dos dias da semana.
var diasDaSemana = new Array(
'Domingo' , 'Segunda-feira' , 'Terça-feira' , 'Quarta-feira' , 'Quinta-feira',
'Sexta-feira' , 'Sábado');
//Criando array com os nomes dos meses do ano.
var mesesDoAno = new Array(
'Janeiro' , 'Fevereiro' , 'Março' , 'Abril' , 'Maio' , 'Junho' , 'Julho' ,
'Agosto' , 'Setembro' , 'Outubro' , 'Novembro' , 'Dezembro'
);
//chamando o alert para exibir os dado coletados.
alert("Brasília - " + diasDaSemana[dia] + ", " + data.getDate() + " de " +
mesesDoAno[mes] + " de " + ano);


}

terça-feira, 7 de abril de 2009

Trabalho Freelance: Quanto cobrar?

Estava meio em dúvida sobre como cobrar pelos meus serviços freelancers , e resolvi dar uma olhada na net pra ver como o pessoal fazia pra colocar preço nas suas aplicações, quando achei esse post que achei interessante e ja estou usando nos meus serviços.

Cobre muito caro e perca a oportunidade. Cobre muito pouco e você pode acabar se arrependendo e isso pode culminar em um resultado inferior. Então qual a melhor maneira de tarifar um projeto freelance, ganhar o trabalho e deixar você e seus clientes felizes?

Seu preço-base
Pra começar, você precisa acertar sua base de ganhos por hora. Qual o mínimo de dinheiro que você precisa pra cobrar pra cobrir suas despesas sem fazer lucro em cima? Isso, amigo freelancer, é seu preço-base. Assim que você estabelecer uma base e começar a entender quer receber um centavo a menos seria ruim (um projeto de prejuízo) vai ficar mais fácil de determinar quanto de lucro você quer fazer. Logo, isso vai fornecer um seguro viável para seus projetos e pode ajudar a colocar um preço no seu trabalho no mercado competitivo atual.
Acima de tudo, definir um preço-base é sobre ser honesto consigo mesmo. Se você não for razoável quanto ao valor que quer cobrar de um cliente, você apenas estará enganando a si mesmo e no final das contas pode acabar se queimando.
Chegando a esse preço-base requer um pouco de cálculo e um pouco de adivinhação. Quantas horas por semana você crê que vai trabalhar em um projeto? Pegue o mínimo em dinheiro que você precisa pra sobreviver e divida por esse número de horas. Por exemplo, se você precisa de R$ 500,00 ao mês pra pagar o aluguel e pode trabalhar apenas 6 horas por dia, 5 dias por semana durante quatro semanas (um mês), isso seria igual a R$ 500/120h = R$ 4,16 por hora para sobreviver.

Lucrando
Quanto cobrar?Lucrar não é cobrar um preço absurdo do cliente. Lucrar é um prêmio pelo seu trabalho que contribuiu com o crescimento do negócio ou empresa do seu cliente. Adicionalmente, considere que seu trabalho é diferente dos outros. Ou seja, seu atendimento ao cliente é melhor, você é mais rápido que os outros freelancers ou talvez a qualidade do seu produto final é maior que os de outros competidores.
Lucro é simplesmente uma porcentagem adicional ao seu preço por hora. Essa porcentagem pode ser qualquer uma, mas você precisa se justificar para que seja realista. Claro, você poderia tentar ganhar 100% acima do seu preço, mas o freelancer que decide ir por essa rota está em sério perigo de diminuir seu lucro a longo prazo.
Sempre conte como você é único ou seus serviços como freelancer são top de linha. Você não precisa estar entre os top 3% do seu campo para ser único - um dos pontos positivos pode ser seu atendimento ao consumidor ou que você termina seus projetos antes de qualquer um. Por serviços especiais assim, você pode aumentar seu lucro um pouco mais já que está oferecendo algo que nenhum outro pode oferecer.

Quanto tempo pode demorar esse projeto?
O ingrediente final que precisamos adicionar á fórmula é um cálculo preciso do número de horas necessárias para completar o projeto. A chave para descobrir quanto tempo você vai demorar é fazer um briefing com seu cliente.
Um briefing serve não só para definir o que o seu cliente quer feito, mas também para ficar de olho no que pode ser feito, como pode ser feito e como estabelecer regras para que seu cliente não decida mudar tudo na última hora. Um briefing deve estabelecer claramente o que o cliente quer. Assim, você pode definir quanto vai cobrar pelo que está escrito no documento. Se o cliente decidir mudar algo ou pede por algo extra que não está incluso no documento, então o freelancer têm todo o direito de cobrar a mais pelo trabalho extra.
Tendo um briefing em mãos, você já vai poder calcular o tanto de horas que vai demorar pra ser finalizado (assumindo que você saiba como fazer tudo que foi pedido). Conhecer todo o escopo do projeto vai resultar em uma forma mais precisa de cálculo de tempo.
Agora temos seu valor-base, sua porcentagem de lucro e o número de horas que vai demorar para finalizar um projeto. Está na hora da…

Fórmula mágica
Preço-base + Lucro + Tempo de duração = Preço ideal

Vamos usar como exemplo os dados anteriores. Você vai trabalhar por R$ 4,16 a hora e vai lucrar 10% (+ R$ 0,41/h). Ou seja, estará ganhando R$ 4,57/hora. Supondo que o projeto vai demorar dois meses para completar. Seis horas ao dia, durante dois meses (tirando os finais de semana e supondo que não haja feriado durante esses dois meses), serão um total de 240 horas. Logo, R$ 4,57/h x 240h = R$ 1096,80. Pra não ficar valores quebrados assim, vamos arrendondar para R$ 1100,00.
Mas, peraí. Isso é óbvio, não é? Não. Muitos freelancers lá fora, quer sejam escritores, designers, programadores ou músicos continuamente falham em criar regras de trabalho quando o assunto é cobrar o projeto adequadamente.
Freqüentemente (e isso é verdade para novos freelancers) existe uma tendência de cobrar um preço abaixo do mercado; talvez pelo fato de que não têm idéia de quanto devem cobrar, talvez porque eles estão tão preocupados com adversários em potencial e acham que quanto menor o preço, melhor o preço, mas muito mais freqüentemente é porque eles não acertaram seu preço base, o lucro que querem ganhar em cima e o número de horas que vai demorar para completar um projeto.Crie seu próprio preço-base e lucro e nunca ofereça um preço para um trabalho que seja menos do que você precisa pra sair sem prejuízo. Faça essas coisas básicas e seu preço sempre estará certo!

Fonte

segunda-feira, 30 de março de 2009

Vinte e cinco dicas de performance para PHP

Esta é uma compilação de material traduzido de algumas pesquisas feitas no google.
  1. se um método pode ser static, declare-o como static. Isso irá aumentar a performance umas 4 vezes.
  2. echo é mais rápido do que print
  3. utilize o unset nas suas variáveis para liberar memória (bons tempos em que todo mundo sabia programar em C :P .. “free your mallocs”)
  4. não use require_once()
  5. utilize o caminho absoluto na hora de dar os includes, assim o PHP não perde tempo tentando resolver o caminho.
  6. str_replace é mais rápido do que preg_replace porém strtr é umas 4 vezes mais rápido do que str_replace
  7. utilizar @ para suprimir os erros é muito lento.
  8. habilite o mod_deflate no apache
  9. feche a sua conexão com o banco se você não irá mais utilizá-la (mas não fique abrindo e fechando toda hora!)
  10. $row['abc'] é 7 vezes mais rápido do que $row[abc]
  11. não use funções dentro de um laço, como por exemplo, for ($x=0; $x <> porque count() vai ser executada em todo ciclo do laço. Utilize: for ($x=0, $c=count($array); $x < $c; $x++).
  12. Incrementar uma variável global é duas vezes mais lento do que incrementar uma variável local
  13. acessar um atributo de um objeto ($obj->atributo++, por exemplo) é 3 vezes mais lento do que acessar uma variável local
  14. incrementar uma variável local não inicializada é 9-10 vezes mais lento do que se ela tivesse sido inicializada.
  15. aspas simples são mais rápidas que aspas duplas
  16. uma aplicação que faça cache dos scripts php vai aumentar a performance entre 25 e 100%.
  17. utilize cache sempre que possível. SEMPRE! (claro que isso tem um onus, mas estamos falando apenas em performance aqui)
  18. Se quiser testar o tamanho de uma string, utilize isset ao invés de strlen. Por exemplo: if (!isset($foo{5})) echo “foo eh mto pequeno!”;
  19. nem tudo precisa ser OO. Métodos e objetos tendem a consumir muito mais memória.
  20. não converta toda estrutura de dados em classes. Utilizar arrays é muito mais rápido.
  21. se você possui funções que demandam muito tempo de execução cogite transforma-las em uma extensão em C.
  22. habilitar o mod_gzip pode economizar em até 80% o tráfego de dados. Sua largura de banda agradece.
  23. evite usar SELECT *. Isso dificulta a manutenção e gasta tempo desnecessário de processamento para descobrir os campos e obter os valores do banco
  24. use switch ao invés de um monte de ifs
  25. json é mais rápido do que xml.
fonte : http://webpub.wordpress.com/2007/11/13/vinte-e-cinco-dicas-de-performance-para-php/