links for 2006-05-08

links for 2006-05-06

| |

Simples optimizaciones para tus aplicaciones MySQL/PHP

Una serie de trucos que podemos utilizar para mejorar nuestras aplicaciones MySQL / PHP, traducido (lo mejor posible) de la fuente:

MySQL

  • MySQL interpreta de derecha a izquierda, por lo que los limitadores más significativos los debes poner lo más a la derecha posible.
  • Selecciona los campos que vayas a necesitar, no todos (*).
  • No pongas en datos que se vayan a modificar rara vez, utiliza ficheros de propiedades.
  • Usa índices para las columnas que aparezcan en el WHERE y en el ORDER BY.
  • Los índices son buenos cuando la tabla se modifica con frecuencia, pero hace lentas las inserciones.
  • Usa el comando EXPLAIN para analizar tus índices.
  • Si solo quieres obtener una fila, usa LIMIT 1 así parará de buscar datos.
  • Si usas $linea = mysql_fetch_array($resultado), hay dos modos de obtener los datos: $linea[n] y $linea[‘columna’]. Si vas a acceder solo por el nombre de la columna, usa $linea = mysql_fetch_assoc($resultado), así no se creará el índice numérico.
  • Algunas veces mysql_free_result() gasta mas memoria que la que salva, comprueba la diferencia con memory_get_usage().
  • No hagas siempre la misma consulta en la BD, guarda los resultados.
  • Usa NOT NULL siempre que puedas, agiliza la ejecución y ahorra un bit.
  • Usa tipos de datos que se ajusten a las necesidades, por ejemplo, en vez de usar INT, que puede ser muy grande, usa MEDIUMINT o SMALLINT cuando sea posible.
  • Usa valores por defecto, inserta solo cuando sean diferentes a estos, agilizarás las inserciones.

PHP

  • Intenta agrupar bloques de código
    <?php
    ...
    ...
    ...
    ?>

    es mas efectivo que

    <?php
    ...
    ?>
    <?php
    ...
    ?>
    <?php
    ...
    ?>
  • No concatenes texto cuando no sea necesario
    "SELECT * FROM $tabla ORDER BY campo"

    es más efectivo que

    "SELECT * FROM ".$tabla." ORDER BY campo"
  • Utiliza la comilla simple (‘) en vez de la comilla doble (“) siempre que no vayas a usar variables dentro, la comilla doble hace que el intérprete analice lo que hay dentro de las comillas.
  • La forma más rápida de concatenar texto es usando comillas simples.
  • Cuando uses echo, separa los strings por comas mejor que con puntos, es más rápido. Esto solo funciona con echo.
  • echo es más rápido que print.
  • Indica el valor máximo para tus bucles for fuera del bucle en vez de dentro del bucle, porque si no, se evaluará la expresión en cada pasada del bucle
    $max = 100/10;
    for($i=0; $i<$max; $i++){
    ...
    }

    es más rápido que

    for($i=0; $i<100/10; $i++){
    ...
    }
  • Libera variables siempre que puedas, sobre todo arrays pesados.

Simple Optimization for PHP and MySQL

Vía / Digg

|

Sé legal, usa OpenOffice

OpenOfficeOpenOffice está llevando a cabo una campaña de publicidad, en la que se nos anima a luchar contra la piratería del MS Office, usando OpenOffice en su lugar.
Después de hacer la vista gorda a la piratería (el 35% según sus estudios), Microsoft está luchando actualmente contra ella, empezando con la compra de una empresa especialista en detectar software ilegal en PCs. OpenOffice es una aplicación similar a MS Office, que dispone de procesador de textos, hoja de cálculo, presentaciones y mucho más, que además, permite leer y crear archivos propios de MS Office. A parte, es gratuito.
Estudios muestran que es diez veces más barato cambiarse a OpenOffice que actualizarse a MS Office 2007. Y una encuesta ha indicado que el 86% de las personas preguntadas prefiere cambiarse a OpenOffice 2 que tener que comprar MS Office 2007. Yo personalmente es el que uso y lo recomiendo totalmente.
Get Legal – Get OpenOffice.org
Vía / Maestros del Web

links for 2006-05-05

|

Laboratorio: devolver ficheros con un determinador nombre en PHP

Es común que nuestras aplicaciones web devuelvan ficheros, y es también muy común que cuando devolvemos esos ficheros el nombre sea el que no deseamos. Para indicar el nombre del archivo que devolvemos tenemos que modificar la cabecera HTTP con la instrucción header:

header("Content-Disposition: attachment; filename=\"el-nombre-que-queramos.png\";");

Si además tenemos que especificar el tipo de archivo con el Content-type, tan solo tendremos que añadirlo:

header("Content-Disposition: attachment; filename=\"el-nombre-que-queramos.png\"; Content-type: image/png");

Podéis ver un ejemplo aquí

|

30 ‘chuletas’ para desarrolladores

Aunque ahora estamos acostumbrados a buscar directamente en Google cuando tenemos una duda, se suele tardar mucho menos, nunca viene mal tener una “chuleta” con lo que solemos utilizar. Una lista bastante amplia y útil, aunque algunas no son de las “bonitas” que ocupan un folio y alguna que otra es de pago:

  • Desarrollo web (JavaScript, CSS, códigos hexadecimales, HTML, XHTML, entidades HTML)
  • Bases de datos (MySQL, Oracle, SQL)
  • Lenguajes (PHP, Ruby, expresiones regulares, JSP, Java)
  • Control de versiones (CVS)
  • Otras (Google, Windows, Unix, Vi, mod_rewrite, códigos de caracteres ASCII, htaccess)

Cheat Sheet Roundup – Over 30 Cheatsheets for developers

Vía / Menéame

Bill y Melinda Gates, galardonados con el Príncipe de Asturias de Cooperación 2006

bill-gates-fundacion-malaria.jpg Desde que se hicieron públicos, en octubre de 2004, los avances de una presumiblemente definitiva vacuna contra la malaria dirigida por el médico español Pedro Alonso, patrocinado por la Fundación Bill y Melinda Gates, tenemos la sensación de que el gran objetivo ¿subconsciente? del fundador de Microsoft, reconvertido a filántropo, es alcanzar el Nobel de la Paz. El Príncipe de Asturias es el comienzo:

El fundador de Microsoft, Bill Gates, y su esposa, Melinda Gates, que dirigen la Fundación que lleva el nombre de ambos, han sido galardonados en Oviedo con el Premio Príncipe de Asturias de Cooperación Internacional 2006.

La Fundación Bill y Melinda Gates, creada en el año 2000, ha donado en los últimos años más de 10.000 millones de dólares a obras de caridad y proyectos no lucrativos y ha realizado importantes aportaciones en la lucha contra enfermedades como el sida y la malaria, presentes en las zonas más pobres del planeta

Fundación Premios Príncipe de Asturias ( A ver si mejoran la web).

Foto: Fundación Bill y Melinda Gates

Vía / El Mundo

Javascript: getElementsBy

Uno de los problemas con los que nos solemos encontrar cuando programamos en Javascript es el modo en el que obtenemos los elementos HTML que deseamos tratar, a parte del conocido getElementById(), existen otros, algunos estándar y otros desarrollados por otra gente.

Una interesante lista con todos ellos reunidos: getElementById (W3C, Prototype JavaScript framework), getElementsByName (W3C), getElementsByTagName (W3C), getElementsByTagNames (Peter-Paul Koch), getElementsByClassName (Prototype JavaScript framework, Stuart Colville, Robert Nyman, Jonathan Snook), getElementsBySelector (Dean Edwards, Olivier Gambier, Prototype JavaScript framework 1.0.5rc2, Simon Willison, jQuery, Joe Hewitt), getElementsByAttribute (Robert Nyman, David “liorean” Andersson, Jack Sleight) y getElementsByAnything (Matthew Pennell)

getElementsBy*()

Vía / Menéame

links for 2006-05-04