Guía inicial al uso de un control de versiones

Aunque a mí me sorprenda, hay gente que cuando desarrolla un proyecto, ya sea profesional o personalmente, no utiliza un software de gestión de versiones.
En el artículo que os presento, nos comentan las ventajas que tendremos cuando usamos un gestor de versiones, sobre todo si se trata de un proyecto con varios desarrolladores.
Nos recomienda el uso de Subversion (SVN) y las aplicaciones para escritorio TortoiseSVN para Windows y SCPlugin para Mac. Aunque prefiero SVN a CVS, y sobre todo a SourceSafe u otros peores, la verdad es que algún problema da, sobre todo a la hora hacer commit cuando ha habido commits de otros usuarios anteriormente.
Además nos ofrece una explicación, incluso mediante explicación gráfica del funcionamiento de SVN. Algo importante también es la diferencia entre export y checkout, aunque dependiendo del programa, puede llamarse update y commit o checkin y checkout (cuando se trata de estos términos los no controlamos el inglés, nos liamos un poco).
Una lectura muy importante para aquellos no iniciados.
What is Source Control and Why Should I Use It?

Consejos para escribir menos código PHP

Escribir menos código puede suponer dos mejoras en nuestra aplicación: código más limpio y fácil de seguir, y código más eficiente.

Usar operadores lógicos (or y and) en vez de if

Si queremos ejecutar una instrucción dependiendo del resultado booleano de una instrucción anterior, como por ejemplo:

$status = fwrite($h, 'texto');
if (!$status) {
log('Error al escribir');
}

Podremos hacerlo de la siguiente manera:

fwrite($h, 'texto') or log('Error al escribir');

Uso del operador ternario

Cuando queremos asignar un valor a una variable dependiendo del resultado de una condición:

$var = $ok? 'Correcto' : 'Falso';

Usar for antes que while

Mientras que con el while sería:

$i = 0;
while ($i < 100) {
$var[] = $aux[$i];
$i += 2;
}

Con el for sería así:

for ($i = 0; $i < 100; $var[] = $aux[$i+=2]);

Uso de funciones por referencia

Cuando una función nos devuelve un array, no es imposible acceder directamente al contenido del array:

$ext = pathinfo('file.png')['extension'];
// Parse error: syntax error, unexpected '[' in ... on line ...

Para evitar este error podemos crearnos un juego de funciones como estas:

// Devuelve la referencia al objeto
function &r($v) { return $v; }
// Devuelve la posición del array
function &a(&$a, $i) { return $a[$i]; }

Y por último un par de consejos: intenta conocer las funciones de PHP, hay muchas que harán justo lo que tu necesitas, por lo que no tendrás que implementarlo. Antes de escribir más código para que se lea con facilidad, añade un comentario explicativo.

6 PHP coding tips to write less code

Vía / dzone

links for 2007-11-06

mysqlslavesync: clona slaves en MySQL

mysqlslavesync es un script que permite clonar servidores slaves de MySQL (o maestros) para ponerlo en un nuevo servidor slave con mínima interacción.
Se conecta al nodo del origen y realiza un mysqldump o mysqlhotcopy para transferir los datos, recuperar los datos y poner a punto todos los parámetros para la replicación. Empezando entonces la replicación del nuevo slave con el master.
Se trata de una versión inicial, pero nos puede ayudar mucho a la hora de crear un nuevo slave, ya que en poco tiempo tendremos todo funcionando.
mysqlslavesync

PopBox: zoom mediante Javascript

PopBox es un script que nos permite añadir el zoom a nuestras imágenes y poder apliarlas o reducirlas (con efecto de transición) de forma sencilla.
Su uso es simple, pero tiene un problema, que necesita atributos para su funcionamiento que hay que añadir a la etiqueta img, que hace que no valide el XHTML.
popbox.png
La verdad es que no es un script que me guste mucho, no valida, hay que añadir demiasados atributos y eventos, pero pensando en la gente que necesita este tipo de efectos y no les importa mucho la validación, quizás les sea interesante y realmente es fácil de usar.
PopBox
Vía / WebAppers

links for 2007-11-05

mysqlsla: analiza los logs de MySQL

mysqlsla es una aplicación que nos puede ayudar bastante en el desarrollo de nuestas aplicaciones web con MySQL. Se trata de una aplicación que analiza los logs de MySQL (ficheros slow y general).
Además analiza los ficheros de logs raw: ficheros planos que contienen sentencias SQL. Por cada tipo de log genera un informe ordenable por los valores de métricas calculadas desde las queries del log.
Gracias a los informes podremos mejorar nuestro rendimiento modificando las opciones que creamos convenientes.
mysqlsla

MooMonth: calendario para MooTools

MooMonth es un calendario para MooTools que nos permite ver en nuestra aplicación los meses y las tareas o anotaciones de cada día.
moomonth.png
Altamente configurable, tiene efectos curiosos como las transacciones entre meses o la ampliación de un día del mes. Aún está en fase alpha, pero por ahora tiene muy buena pinta.
MooMonth

links for 2007-11-01