Best Practice: Select lentas, rápidas e super-rápidas.

Infelizmente nos dedicamos tanto na hora de desenvolver, que não nos aprofundamos nas características que oferecem cada ferramenta.

E as melhores práticas entram exatamente ai. Neste primeiro post desta categoria, vamos comentar sobre o uso do comando Select em uma base de dados Mysql, que com algumas otimizações podemos ter resultados bem mais rápidos.

Busca de Palavras

/* Muito rápida */
SELECT * FROM tabela WHERE MATCH (`campo`) AGAINST (‘palavra’)

/* Rápida */
SELECT * FROM tabela WHERE MATCH (`campo`) AGAINST (‘+palavra’ IN BOOLEAN MODE)

/* Lentas */
SELECT * FROM tabela WHERE RLIKE ‘(^| +)palavra($| +)’

/* Super lenta */
SELECT * FROM tabela WHERE RLIKE ‘([[:space:]]|[[:<:]])palavra([[:space:]]|[[:>:]])’

Busca de Conteúdo

/* Muito rápida */
SELECT * FROM tabela WHERE MATCH (`campo`) AGAINST (‘palavra*’ IN BOOLEAN MODE)

/* Rápida */
SELECT * FROM tabela WHERE FIELD LIKE ‘palavra%’

/* Lentas */
SELECT * FROM tabela WHERE MATCH (`campo`) AGAINST (‘*palavra*’ IN BOOLEAN MODE)

/* Super lenta */
SELECT * FROM tabela WHERE campo LIKE ‘%palavra%’

Número de registros

/* Muito rápida */
SELECT SQL_CALC_FOUND_ROWS * FROM tabla WHERE condición LIMIT 0, 10
SELECT FOUND_ROWS()

/* Rápida */
SELECT * FROM tabela WHERE condicao LIMIT 0, 10
SELECT COUNT(chave) FROM TABELA WHERE condicao

Fonte: PHP Mysql tips

Anotações sobre projetos de web sites e portais

Avellar & Duarte, é uma empresa de design e consultoria do Rio de Janeiro. Criaram em seu site institucional um glossário e técnicas para quem deseja trabalhar com desenvolvimento web.

No portal é possível aprender muito sobre qual metodologia adotar na hora de começar a desenvolver um projeto, tudo passo-a-passo:

  • Contextos de projeto (web)
  • Iniciação e planejamento
  • Conceituação
  • Elaboração da estrutura
  • Interface
  • Características do conteúdo
  • Recursos, técnicas
  • Produção
  • Lançamento
  • Encerramento, manutenção
  • Dispositivos móveis

Sem dúvida uma fonte excelente de consulta e aprimoramento.

Link: http://www.avellareduarte.com.br/

Link para arquivos com imagem de acordo com o tipo

Sei que parece meio estranho o tema deste post, mas o assunto é simples.

Sabe quando você precisa fazer um link em sua página para um documento .doc, .pdf, .xls e outros? Pois é, como indicar para o usuário que aquele link é um documento tipo DOC ou um documento PDF?

Alguns usam duas colunas, onde colocam o ícone do tipo de documento de um lado e o link do outro, até funciona, mas não é nada prático. O ideal seria identificar o tipo de documento automaticamente, e assim já inserir o ícone apropriado.

Tendo como referência o artigo CSS 2.1 Selectors, e os mini-ícones do site famfamfam, é possível criar umas classes CSS para fazer isso, vejamos:

a[href$=’.pdf’] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(Images/PDF.gif) center left no-repeat;
}

Também é possível criar links com ícones personalizados para os tipos comuns:

a[href^=”http:”] {
display:inline-block;
padding-right:14px;
background:transparent url(/Images/link.gif) center right no-repeat;
}

a[href^=”mailto:”] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(/Images/email.gif) center left no-repeat;
}

a[href$=’.pdf’] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(/Images/pdf.gif) center left no-repeat;
}

a[href$=’.swf’], a[href$=’.fla’], a[href$=’.swd’] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(/Images/flash.gif) center left no-repeat;
}

a[href$=’.xls’], a[href$=’.csv’], a[href$=’.xlt’], a[href$=’.xlw’] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(/Images/excel.gif) center left no-repeat;
}

a[href$=’.ppt’], a[href$=’.pps’] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(/Images/PowerPointIcon.gif) center left no-repeat;
}

a[href$=’.doc’], a[href$=’.rtf’], a[href$=’.txt’], a[href$=’.wps’] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(/Images/WordDocIcon.gif) center left no-repeat;
}

a[href$=’.zip’], a[href$=’.gzip’], a[href$=’.rar’] {
display:inline-block;
padding-left:20px;
line-height:18px;
background:transparent url(/Images/ZIPIcon.gif) center left no-repeat;
}

phpCodeGenerator: Códigos para seu BD automático

Depois falam que PHP não presta.

phpCodeGenerator é uma biblioteca para gerar sites inteiros através de um banco de dados.

Permite ler o banco de dados e gerar uma página web que permita criar, listar, editar, modificar e deletar os registros.

Funciona com qualquer banco de dados compatível com ADODB, como MySQL, Microsoft Access, PostgreSQL e outros.

A informação que contém um banco de dados: esquema, tabelas, campos e propriedades, é suficiente para criar algumas classes que permita criar, editar, atualizar e deletar registros. Formando assim uma base para que o desenvolvedor logo possa realizar sua aplicação web mais facilmente.

O framework phpCG permite construir aplicações PHP orientadas a objetos que são extensíveis, portáveis e escaláveis.

Link: phpCodeGenerator

Fonte: International PHP Magazine

MySQL Proxy – Otimizador de Banco de Dados

MySQL Proxy é uma aplicação, em fase inicial, que você instala entre sua aplicação e o MySQL.

Permite monitorar, analizar e transformar as comunicações. Sua flexibilidade permite um número ilimitado de usuários, balanceamento de carga, teste de falha, análise de querys, filtros e modificações de querys e muito mais.

Disponível para Linux, Mac OSX, FreeBSD, IBM AIX e Sun Solaris, isso mesmo, para Windows ainda não esta disponível por ter problemas com uma biblioteca libevent, porém em breve estará disponível também

Link: MySQL Proxy

JPop e CodeIgniter – Frameworks PHP

jPOP Framework

O jPOP é um framework para desenvolver aplicações para web sem a necessidade de saber Javascript/Ajax e também para quem tem pouco conhecimento de PHP.

A diferença entre ele e outros frameworks, é que os outros tomam controle de toda a aplicação web, porém este somente da parte de onde você precise usar. Seu código é super pequeno (12Kb), e permite adição de plugins para ampliar suas funcionalidades.

Link: http://scriptex.tan-com.com/jPOP/index.php

Este sem dúvida é um dos melhores…

O Code Igniter é  como um kit de ferramentas – para quem constrói sites em PHP.

Seu objetivo, através de um abrangente conjunto de bibliotecas voltadas as tarefas mais comuns, de uma interface e uma estrutura lógica simples para acesso àquelas bibliotecas, é possibilitar que você desenvolva projetos mais rapidamente do que se estivesse codificando do zero.

Code Igniter permite que você mantenha o foco em seu projeto minimizando a quantidade de código necessário para uma dada tarefa.

Fonte: wikibooks.org

Mudanças na língua portuguesa

Você sabia que o Ministério da Educação começa a se preparar para a mudança ortográfica que, além do trema, acaba com os acentos de vôo, lêem, heróico e muitos outros.

A nova ortografia também altera as regras do hífen e incorpora ao alfabeto as letras k, w e y. Essas alterações foram discutidas entre os oito países que usam a língua portuguesa –uma população estimada hoje em 230 milhões– e têm como objetivo aproximar essas culturas.

Leia mais http://www1.folha.uol.com.br/folha/educacao/ult305u321371.shtml 

e veja tudo o que vai mudar: http://www1.folha.uol.com.br/folha/educacao/ult305u321373.shtml