Losantos no tiene desperdicio con una camara delante

Losantos no tiene desperdicio con una camara delante y alguien que le ria las “gracias”.
Sin lugar a dudas vomitivo… Habría que explicarle lo que es un dictador (FRANCISCO FRANCO) y lo que no (Evo Morales, Hugo Chavez, …)

Una persona que desea la enfermedad y la muerte a sus iguales creo que se define por sí misma.

XCache

Xcache es una librería que sirve para almacenar en cache los códigos de operación de nuestros scripts php. Aunque esta frase pueda parecer algo oscuro y difícil de entender sólo significa que tendremos pre-parseados e interpretados nuestros scripts por el core de php. De manera que en ejecuciones posterires no hará falta pasar por todas las fases de validación, análisis, tratamiento e interpretación del código. Nos encontramos pues ante una especie de compilación de código php. Lo mejor es que el código no está realmente compilado y podemos modificarlo de la forma habitual forzando que se recree el cache sólo para los scripts que hemos modificado.

De esta manera se optimiza el rendimiento de las páginas php en los servidores. Almacenando en RAM (shm) de cache el estado compilado de los scripts php se ahorra tiempo de compilación. Según sus desarrolladores es posible obtener hasta 5 veces más de velocidad en la generación de páginas.

La página oficial de Xcache es la siguiente: Xcache

Actualmente se encuentra en versión estable y sólo disponible para linux. Soporta varias versiones de php desde la 4.3 hasta la 5.3 (e incluso para pre versiones de php6). Extrañamente no es soportado para la versión 5.0.

Comando linux: test

Este comando linux tiene ciertas peculiariedades que lo alejan de su utilización en consola y lo hacen realmente útil para el programación de scripts. Seguramente el hecho más relevante que reafirma lo que acabamos de decir en la manera en la que test devuelve la información; simplemente a través de su código de retorno. O sea que después de ejecutarlo por consola no veremos absolutamente nada sólo el prompt de nuestro terminal pidiendonos que introduzcamos la siguiente orden.

Test es un comando para evaluar expresiones devolviendo 0 (cómo código de retorno) en el caso de que la expresión evaluada sea verdadera o un valor distinto de 0 en el caso de ser falso. Esto es la manera habitual para la shell, completamente diferente a la programación en C donde 0 es evaluado como falso y diferente de 0 como verdadero (aunque C no tiene tipos booleanos). Bueno que me estoy liando.

El caso es que test es capaz de analizar cadenas de texto, enteros y ficheros evaluando sus propiedades para analizar lo que más nos interese de estos elementos. Así por ejemplo para cadenas es capaz de determinar si estamos ante una cadana vacia o no (-n), si su longitud es cero (-z) si es igual a otro cadena (=). Para enteros puede determinar si son iguales, mayores o menores que otro dado y para ficheros que en mi modesta opinión es donde radica uno de sus puntos puede determinar un montón de cosas como:

FILE1 -ef FILE2
FILE1 y FILE2 son el mismo fichero en realidad (mismo inodo y dispositivo)

FILE1 -nt FILE2
FILE1 es más reciente que el FILE2 (por la fecha de modificación)

FILE1 -ot FILE2
FILE1 es más antiguo que FILE2

-b FILE
FILE existe y es un fichero de bloque especial (no un fichero regular, ver mknod)

-c FILE
FILE existe y es un dispositivo de tipo caracter (ver mknod)

-d FILE
FILE existe y es un directorio

-e FILE
FILE exite (sin entrar en otras consideraciones como en el caso de los otros parámetros)

-f FILE
FILE existe y es un fichero regular

-g FILE
FILE existe y tiene marcado el bit de GUID (id de grupo)

-G FILE
FILE existe y es poseido por el EGUID (id de grupo efectivo)

-h FILE
FILE existe y es un enlace simbólico (igual que el modificador -L)

-k FILE
FILE existe y tiene marcado el bit sticky

-L FILE
FILE existe y es un enlace simbólico (igual que el modificador -h)

-O FILE
FILE existe y es poseido por el EUID (id de usuario efectivo)

-p FILE
FILE existe y es una tuberia con nombre (ver FIFOs)

-r FILE
FILE existe y el usuario actual tiene permiso de lectura sobre él

-s FILE
FILE existe y tiene un tamaño mayor que cero

-S FILE
FILE existe y es un fichero tipo socket

-t FD
el descriptor de fichero FD esta abierto en una terminal

-u FILE
FILE exite y su SUID está marcado

-w FILE
FILE existe y el usuario actual tiene permiso de escritura sobre él

-x FILE
FILE existe y el usuario actual tiene permiso de ejecución (o busqueda) sobre él

Además test es capaz de concatenar varias expresiones empleando AND o OR lógicos con los siguientes modificadores:

EXPRESSION1 -a EXPRESSION2 (AND lógico)

EXPRESSION1 -o EXPRESSION2 (OR lógico)

Como ya he comentado antes test se emplea sobre todo en programación bash en instrucciones condicionales por acabar el articulo con un par de ejemplos que ilustraran claramente su utilización:

file=”/tmp”
if [ -k $file ]
then
echo “El directorio /tmp tiene el bit sticky marcado”;
fi

Otro ejemplo

cadena=”hola”
if [ $cadena = “hola” ]
then
echo “Hola mundo!”;
fi

Observad que en los ejemplos no hemos puesto ningún test pero es que en programación en bash y en este tipo de construcciones el corchete abierto [ es sinónimo de test (y por razones de eficiencia en un builtin (bash lo tiene incluido internamente y no llama al comando test al que emula)